IE9中的字符DOM异常无效

Pra*_*nat 29 javascript dom internet-explorer-9 domexception

以前在IE8中工作的JS现在在IE9中失败了.

document.createElement('<iframe id="yui-history-iframe" src="../../images/defaults/transparent-pixel.gif" style="position:absolute;top:0;left:0;width:1px;height:1px;visibility:hidden;"></iframe>');
Run Code Online (Sandbox Code Playgroud)

我得到以下异常:SCRIPT5022:DOM异常:INVALID_CHARACTER_ERR(5)

上面的代码是不符合标准的.该问题的解决方案是什么?

Ada*_*res 29

createElement的API指定构造函数需要string该种类的元素名称.IE9似乎更严格地遵循标准.您可以使用以下代码完成与尝试相同的操作:

var iframe = document.createElement("iframe");
iframe.setAttribute("id", "yui-history-iframe");
iframe.setAttribute("src", "../../images/defaults/transparent-pixel.gif");
iframe.setAttribute("style", "position:absolute;top:0;left:0;width:1px;height:1px;visibility:hidden;");
Run Code Online (Sandbox Code Playgroud)

http://msdn.microsoft.com/en-us/library/ms536389(v=vs.85).aspx

  • 这也可以作为旧版IE的修复工具吗? (3认同)

小智 13

对于jQuery.bgiframe.js,修复错误的IE6测试会是更好的解决方案吗?

如何替换这个:

if($.browser.msie&&/6.0/.test(navigator.userAgent)
Run Code Online (Sandbox Code Playgroud)

用这样的东西:

if ($.browser.msie && $.browser.version=="6.0")
Run Code Online (Sandbox Code Playgroud)


Til*_*ito 7

对于jquery.bgiframe.js:

我在前面下载了1.1.3版本

https://github.com/brandonaaron/bgiframe/blob/master/jquery.bgiframe.js

这解决了这个问题.