2012-01-03 67 views
3

當我在IE9調試,它打破在下一行JavaScript錯誤在IE9 「SCRIPT5022:DOM異常:INVALID_CHARACTER_ERR(5)」

{var c=document.createElement('<iframe id="'+a+'" name="'+a+'" />') 

,出現以下錯誤:

SCRIPT5022: DOM Exception: INVALID_CHARACTER_ERR (5) 
wmd.js, line 1 character 97 

我正在使用OSQA軟件,並且可能會使用最新版本的IE9(可能會安裝網頁開發人員工具欄)複製該錯誤

如果訪問該網頁,打開JavaScript控制檯,並嘗試使用上傳的圖片上傳任何圖片

http://meta.osqa.net/questions/ask/(錯誤可以被複製爲12年1月3日)

,出現錯誤。

在IE9這隻斷裂出於某種原因

更新

我有點新本JavaScript調試業務,但我打開了手錶菜單和「a」是價值:jUploadFrame1325624808664

+0

的'wmd.js'哪裏發生這個錯誤似乎是一個第三方庫。將其報告給圖書館的維護者。 – BalusC 2012-01-03 21:12:47

+1

由於這是一些縮小的JavaScript的一部分,我建議分裂出來進行調試。您希望完全確定發生錯誤的位置。請參閱http://jsbeautifier.org/ – 2012-01-03 21:20:03

回答

9

createElement方法expects only the name of the element來創建。就像這樣:

var c = document.createElement("iframe") 

屬性可以添加到後來的新元素:

c.id = c.name = a; 

以前版本的IE允許您提供任意的HTML這個功能,但是那是的the spec永不分離並且在IE9中不再支持。

3

要使用createElement,你應該只給它一個標籤名。

var c = document.createElement('iframe'); 
c.id = c.name = a; 
+0

設置IE6上的名稱元素會創建一個異常,並且鏈接http://msdn.microsoft.com/en-us/library/ms534184(VS.85).aspx表示那裏也是IE7的問題。這就是爲什麼最初使用時髦的IE6方法的原因。無論是嘗試/捕捉還是確定您是否可以「檢測」「功能」(或在IE6中沒有)。 – rholmes 2012-02-03 22:33:14

1
var c=document.createElement('iframe'); 
c.id=a; 
相關問題