html 用户突然收到“XPath求值器未定义”错误

qfe3c7zg  于 2022-11-20  发布在  其他
关注(0)|答案(3)|浏览(212)

这是一个来自我支持的系统用户的问题。该系统是一个基于Web的企业应用程序。我应该注意,我 * 不是 * 它的开发人员。我不要求他们支持这个问题的原因是因为他们以前的支持是“我们不需要修复它,我们只是选择不支持它”,老实说,我怀疑不到他们的开发人员就不会理解这个问题。
用户正在尝试访问此网页中的功能(具体地说,他们正在尝试为业务约定创建条目)。此功能将生成一个用于创建此新内容的新窗口,该窗口沿着有多个选项卡可访问不同的部分。虽然窗口确实正确打开,并且选项卡显示均匀,默认的“常规”选项卡的页面是空白的,中间会弹出一个“XPath求值器未定义”的窗口。除了关闭该错误消息外,该窗口没有响应。
用户有IE 10,升级到IE 11,然后降级回IE 10,它仍然工作。她说,她安装Skype之前,它停止工作,但没有让它再次工作后,她卸载Skype。没有缓存清除或重新启动帮助她。我一直无法重现问题使用每一个浏览器在阳光下我的机器:

  • 火狐33 + FireIE*
  • 火狐31 + FireIE*
  • IE 11语言
  • IE 10**
  • IE 9**
  • IE 8**
  • IE 7**
  • IE 6**
  • 火狐浏览器**
  • 铬**
  • 歌剧院**
  • FireIE是一个FF插件,基本上模拟了Firefox中的IE。我让它强制执行IE 10标准。
    **IE 11的开发仿真。

问题是她工作站上的某个东西让网页的代码突然出错了。你知道是什么东西坏了吗?为什么坏了?也许还有可能的修复方法?从时间上讲,Skype似乎是罪魁祸首,我对Skype随机破坏随机程序并不陌生。但是我真的不知道Skype怎么可能破坏这样一个网络应用程序。2我也没能在我的调试控制台中找到什么代码似乎被破坏了。3见鬼,我甚至不知道使用的是哪个版本的XPath。
编辑:设法获取 * 似乎 * 导致问题的代码:

function getSelectXMLNodes(doc, path) { 
    var xpath = new XPathEvaluator(); 
    var result = xpath.evaluate(path, doc, doc.createNSResolver(doc.documentElement), XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);  

    var nodeList = new Array(result.snapshotLength); 

    for (var i = 0; i < result.snapshotLength; i++) { 
        nodeList[i] = result.snapshotItem(i); 
    } 
    xpath = null; 
    result = null; 
    return nodeList; 
}
7vux5j2d

7vux5j2d1#

我不知道具体是什么原因导致它在这个时候停止工作,但从历史上看,IE不支持XPathEvaluator。
根据this post,“您可以在DOM文档对象上使用selectNode()和selectSingleNode()(仅适用于IE)。”

iq0todco

iq0todco2#

需要将兼容模式更改为IE 10
我只需要在Head中添加这一行

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

清除浏览器缓存并重试!它工作!:)

cbeh67ev

cbeh67ev3#

此错误消息...

ReferenceError: 'XPathEvaluator' is undefined

...表示在 Javascript 中 * 处理 *XML时 * 出现 * 引用错误 *。
Professional Javascript for Web Developers(作者@nzakas)一书中提到,internet-explorer浏览器不支持XPathEvaluator。在这种情况下,用户应该在 *DOM Document对象 * 上使用selectNode()selectSingleNode()(仅适用于IE)。

历史

根据文章所述,Resolving the Error "XPathEvaluator’ is undefined"在升级到internet-explorer-11后,经常会在 Microsoft Dynamics CRM 2011 中发现此XPathEvaluator is undefined脚本错误。进一步的调查显示,任何包含ClientGlobalContext.js(用于获取父表单的上下文)的HTML资源都将引发错误SCRIPT5009: ‘XPathEvaluator’ is undefined

溶液

解决方案是将下面一行添加到引用该特定 JS 文件的自定义HTML文档的<head>中:

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

相关问题