IE9中未定义DOMParser

时间:2011-06-25 08:31:46

标签: javascript internet-explorer internet-explorer-9

我在使用IE9时遇到了一个非常奇怪的错误。当我在localhost的jsp页面中使用DOMParser时,它运行得非常好并且给出了正确的结果。

但令人震惊的是,当我在普通的HTML文件中使用DOMParser时(不在服务器上。从文件系统中),我得到了“DOMParser未定义”的烦人信息。这是什么以及如何使其工作?谢谢。

P.S。它适用于FF和Chrome

2 个答案:

答案 0 :(得分:9)

我想说在浏览本地网址时,几乎可以肯定这是浏览器在兼容模式下运行。

您可以通过打开开发工具(按F12)并查看右上角来检查这一点;如果它说它是在IE7模式,那么你已经找到了问题。将其切换回正常的IE9模式,它应该是正确的。

IE7不支持DomParser对象,因此如果IE9处于IE7兼容模式,它自然会停止支持它。

好的,这就是它正在做的事情。但为什么这样做呢? IE中有一个配置设置(IE8和IE9),它指定在浏览本地Intranet上的站点时浏览器应该进入兼容模式。此设置存在的原因是允许具有为旧版IE设计的内部网站的公司升级到新版本而不破坏这些网站。它旨在让那些在破碎的版本足够好的情况下宁愿不花钱修理公司类型的公司类型更容易。

但对于我们其他人来说,这是一个痛苦的后方。

显然,如果您的网站位于公共互联网上,它将不受此标志的影响,除非您尝试从您自己的PC上的localhost处理它。因此,您的解决方案是在浏览器中关闭此配置设置并忘记它。

当然,事实仍然是IE7的用户仍然会在您的网站上遇到此问题,因为他们的浏览器不支持您正在使用的功能。您可以放弃对IE7的支持,并告诉这些用户升级。但是如果你想支持IE7用户,我相信Dean Edwards的IE7.js脚本允许浏览器模仿这个功能(以及微软忘记的其他一些东西)。

希望有所帮助。

答案 1 :(得分:1)

我收到此错误,“DOMParser未定义”,在IE9上,它结果是一个被禁用的加载项。

命名XML DOM文档 出版商微软公司 状态已启用

工具 - 管理加载项 - Microsoft Corporation