IE9中未定义DOMParser

mih*_*the 7 javascript internet-explorer internet-explorer-9

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

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

PS它适用于FF和Chrome

Spu*_*ley 9

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

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

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

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

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

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

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

希望有所帮助.