所以我在這裏有點困惑。我不明白爲什麼腳本在與jQuery的.html()
放置時執行,但不與innerHTML
。我查看了jQuery的.html
的源代碼,它似乎仍在使用innerHTML
。誰能解釋這種行爲?爲什麼腳本會使用jquery的html運行,但不能使用innerHTML?
我在ajax響應中遇到了這個問題。我回來的HTML和一個script
標籤與一些JavaScript的,我通常使用html
,但由於某種原因使用innerHTML
這一次認爲沒有什麼區別。
據我所知,這可能似乎是本地化的,所以我做了一個jsFiddle,其行爲與ajax響應類似,以突出問題。
jsFiddle demonstrating the behavior
HTML標準明確提到'script'元素在通過'innerHTML'設置時沒有被評估(http://www.w3.org/TR/2008/WD-html5-20080610/dom.html#dynamic0): *「注意:使用'innerHTML'插入的腳本元素在插入時不會執行。」* – 2013-03-25 00:01:10
@FelixKling - 感謝您的鏈接。不知道爲什麼我不這樣想。 – 2013-03-25 00:07:38