2011-12-13 34 views
1

當我將元素的innerHTML屬性設置爲包含腳本元素的字符串時,IE中出現了一個奇怪的問題。在IE中設置元素的innerHTML屬性包含腳本元素時出現奇怪的問題

會發生什麼事是,當innerHTML的設置,如:

domEl.innerHTML = "<script type=\"text/javascript\">alert(\"hello world\");</script>" 
alert(domEl.innerHTML); 

警報框不顯示任何文本,如果腳本元素完全去除。此外,檢查元素的childNodes集合也表明腳本元素不存在爲domEl.childNodes.length = 0

但是,如果您之前的腳本標籤,像這樣添加一些文字:

domEl.innerHTML = "start text<script type=\"text/javascript\">alert(\"hello world\");</script>" 
alert(domEl.innerHTML); 

腳本元素在顯示警告框時出現。

爲什麼會發生這種情況,我該如何解決這個問題?這是IE中的錯誤嗎?它可以在最新版本的Chrome和Firefox中正常運行。我爲此使用IE 8。

回答

0

看起來像一個錯誤,或在IE中的一些奇怪的安全考慮。 嘗試在文字周圍使用XMP標籤。它可能會起作用,但這取決於你想要達到的目標。

+0

我已經在腳本標記之前添加了XMP標記,並且所有程序似乎都很順利,但是像這樣做並不容易,因爲我知道這不是解決此類問題的正確方法,但隨後再次,它似乎是目前唯一的方式。謝謝! – user1092719 2011-12-13 22:26:38

相關問題