无法获取属性'替换'的未定义-仅在IE9中

Unable to get property 'replace' of undefined - only in IE9

本文关键字:仅在 IE9 未定义 获取 替换 属性      更新时间:2023-09-26

我只在Internet Explorer 9中收到此错误。IE1、IE2、IE3、IE4、IE7、IE8和IE10可以很好地运行脚本。这是一个褪色图像的横幅,一个接一个地堆叠在一起,逐渐消失。

当您试图在IE9上加载页面时,它会抛出一个错误。这个错误发生在prototype.js中,我得到了这个错误。

SCRIPT5007:无法获取未定义或null引用的属性"replace"prototype.js,第334行字符24

为什么IE9中会出现这种情况,而早期版本却没有??

我收到了同样的错误消息,因为我对XML标记使用了.html()操作。

var myXML = '<someTag att1=""><cell></cell></someTag>' ;
$(myXML).html(); // which was giving the error msg.
// Instead use the below option 
$(myXML).children() ;// instead this work with IE

注意:上面的例子并不是我实际尝试的,它只是给出了问题的一个表示。

您应该尝试使用X-UA-Compatible标记。许多库不能很好地与IE9配合使用,需要在IE8兼容模式下运行。

<meta http-equiv="X-UA-Compatible" content="IE=8" />

经过几个小时的拔毛和磨牙,我已经解决了这个问题。

我并没有意识到脚本依赖于原型。

我正在更新原型,同时留下了一个过时版本的脚本效果链接,这引发了许多错误。

在更新到scriptaculous 1.9,然后将原型更新到1.7之后,一切都很好,没有出现任何错误。

感谢所有帮助过我的人,我感谢所有的评论!

大多数时候,这个错误的发生是因为jquery中解析XML的.html()操作。删除此项并改用.text()将解决问题。