这是来自我支持的系统的用户的问题。该系统是基于Web的企业应用程序。我应该注意,我不是开发者。我不是要求他们支持这一点的原因是因为他们以前的支持已经是"我们不需要解决这个问题,我们只是选择不支持它"我真的怀疑是否少了他们的开发人员之一会理解这个问题。
用户正在尝试访问此网页中的某项功能(具体而言,他们正在尝试为业务参与创建一个条目)。此函数生成一个新窗口,用于创建此新事物,侧面有多个选项卡以访问不同的部分。虽然窗口打开正常,并且标签显示均匀,但默认情况下“常规”和“标签页面是空白的,弹出窗口说" XPath评估器是未定义的"出现在中间。关闭该错误消息后窗口没有响应。
用户已经使用IE 10,升级到IE 11,并且随着它的运行将其降级到IE 10。她说她在Skype停止运行之前安装了Skype,但在卸载Skype之后又没有让它再次运行。没有缓存清除或重新启动帮助她。我无法使用机器上阳光下的每个浏览器重新创建问题:
* FireIE是一个FF插件,基本上可以在Firefox中模拟IE。我有它强制IE 10标准。
** IE 11的开发模式。
问题在于她工作站上的某些内容使网页代码突然出现错误。关于什么破坏,为什么破产,以及可能的解决方法的任何想法?按时间顺序来说,Skype似乎是罪魁祸首,我对Skype随机破解随机程序并不陌生,但老实说我不知道Skype怎么可能破坏像这样的网络应用程序。我无法找到调试控制台中出现的代码。哎呀,我甚至无法弄清楚正在使用哪个版本的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;
}
答案 0 :(得分:0)
我不知道具体是什么原因导致它在此时停止工作,但从历史上看,IE还没有支持XPathEvaluator。
根据this post,“您可以在DOM Document对象上使用selectNode()和selectSingleNode()(仅限IE)。”
答案 1 :(得分:0)
需要将兼容模式更改为IE 10
只需在Head
中添加此行<meta http-equiv="X-UA-Compatible" content="IE=10" />
清除缓存浏览器并重试!有用! :)
答案 2 :(得分:0)
此错误消息...
ReferenceError: 'XPathEvaluator' is undefined
...表示在 Javascript 中进行 XML处理时出现 ReferenceError 。
在《面向Web开发人员的专业Javascript》 作者@nzakas提到的书中,internet-explorer浏览器不支持XPathEvaluator
。在这种情况下,用户应该在 DOM文档对象上使用selectNode()
和selectSingleNode()
(仅限IE)。
根据文章,在升级到Resolving the Error "XPathEvaluator’ is undefined"后,在 Microsoft Dynamics CRM 2011 中经常观察到internet-explorer-11这个XPathEvaluator is undefined
脚本错误。进一步的调查显示,任何包含ClientGlobalContext.js
(用于获取父表单的上下文)的HTML资源都将引发错误SCRIPT5009: ‘XPathEvaluator’ is undefined
。
解决方案是将以下行添加到引用该特定 JS 文件的自定义HTML文档的<head>
中:
<meta http-equiv="X-UA-Compatible" content="IE=10" />
脚本的这一行用于强制浏览器以internet-explorer-10模式运行Web资源。
警告:缺点是此功能将在microsoft-edge(已被Microsoft新发布的 Internet Explorer 替代产品)中折旧。