2013-05-07 29 views
1

如果我確認我已經有jQuery的,爲什麼在jquery中插入腳本如此奇怪?

$('<script type="text/javascript"/>').text("alert('boo');").appendTo($("head")); 

按預期工作。但是無法在Firebug或Chrome的開發工具中查看腳本。

沒有人建議插入腳本的方式和大家都說

headtag=document.getElementsByTagName('head')[0]; 
scripttag=document.createElement('script'); 
scripttag.type='text/javascript'; 
scripttag.innerHTML="alert('boo');"; 
headtag.appendChild(scripttag); 

在這種情況下,它是螢火可見。爲什麼後者比前者更可取?爲什麼螢火蟲不顯示腳本?

+0

我想知道爲什麼有人會使用這兩種方案中的任何一種,而不是僅僅執行'alert('boo')' – 2013-05-07 17:57:41

+0

如果你想添加一個外部腳本到頁面,你應該使用jQuery的''getScript']( http://api.jquery.com/jQuery.getScript/)方法。 – zzzzBov 2013-05-07 17:58:29

回答

4

當jQuery處理要附加到DOM的HTML文本時,它總是先剝去<script>內容。它在更新DOM之後評估腳本。