2011-09-28 19 views
6

你怎麼去了解HTML編寫出一個jQuery函數的調用位置?書寫新的HTML到調用的位置

我有一個包含以下的jQuery/JS代碼的HTML頁面:

... HTML contents ... 
<script> 
    functionName(); 
</script> 
... More HTML Contents... 

如何獲得functionName追加/寫出新的內容,其中的叫法,而不是在文檔中選擇另一個ID並追加。

JavaScript的document.write能做到這一點,但是,我讀過,它搞砸了jQuery的後來與DOM的工作能力。

回答

2

this answer的啓發。

看來,腳本才能運行,所以在調用的時候,在那一刻的最後一個腳本標籤是腳本標籤包含這一呼籲。

http://jsfiddle.net/vYPHb/2/

function test() { 
    // get last script tag at the point of calling - useful case of 
    // explicitly NOT using '$(document).ready' :) 

    $("script:last").replaceWith("hacked"); 
} 

HTML:

foo 

<script> 
    test(); 
</script> 

bar 
+0

哇......這就是一個相當ummm ..獨特的方法[似乎是合理的,雖然] – monksy

+0

@monksy:。這是一個有點複雜的,我試圖使它更加簡潔 – pimvdb

+0

感謝那些看起來有點清潔 – monksy

1

這取決於document.write是如何被使用。如果頁面加載完成之前,正在使用它,那麼它是好的,但(比如說從頁面加載事件觸發)後,它應該被使用,那麼它將把文檔中的異常狀態(write使文檔流打開並開始寫入,這會導致一個空白頁面(在IE中),或者一個永不結束的打開的文檔[document.close在頁面加載完成後被瀏覽器明確地調用]

+0

的特定功能,在操控性上的內容一個onclick動作被寫入。 – monksy