我在使用 IE9 时遇到了一个非常奇怪的错误。当我在本地主机上的 jsp 页面中使用 DOMParser 时,它运行得非常好并给出了正确的结果。
但令人震惊的是,当我在普通 HTML 文件(不在服务器上。从文件系统)中使用 DOMParser 时,我收到了“DOMParser 未定义”的烦人消息。这是什么以及如何让它工作?谢谢。
附言它在 FF 和 Chrome 上运行良好
最佳答案
我想说这几乎可以肯定是浏览器在浏览本地 URL 时以兼容模式运行。
您可以通过打开开发工具(按 F12)并查看右上角来检查这一点;如果它说它处于 IE7 模式,那么您就发现了问题。将其切换回正常的 IE9 模式,它应该正确。
IE7 不支持 DomParser 对象,所以如果 IE9 处于 IE7 兼容模式,自然也会停止支持。
好的,这就是它正在做的。但它为什么要这样做呢? IE(IE8 和 IE9)中有一个配置设置,指定浏览器在本地 Intranet 上浏览站点时应进入兼容模式。存在此设置的原因是允许拥有为旧版 IE 设计的内部站点的公司升级到新版本而不会破坏这些站点。它的目的是让那些宁愿在损坏的版本足够好时也不愿花钱修复某些东西的公司类型变得更容易。
但这对我们其他人来说是一种后方的痛苦。
显然,如果您的网站位于公共(public)互联网上,则它不会受到此标志的影响,除非您尝试从您自己的 PC 上的本地主机对其进行操作。因此,您的解决方案是简单地在浏览器中关闭此配置设置并忘记它。
当然,IE7 用户在访问您的网站时仍然会遇到这个问题,因为他们的浏览器不支持您正在使用的功能。你可以放弃对 IE7 的支持,并告诉那些用户升级。但是如果要支持IE7用户,我相信Dean Edwards的IE7.js脚本允许浏览器模拟此功能(以及微软忘记的一堆其他东西)。
希望对您有所帮助。
关于javascript - DOMParser 在 IE9 中未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6476733/