【问题标题】:Document.evaluate for documents without namespaceURI crashes Microsoft Edge没有 namespaceURI 的文档的 Document.evaluate 崩溃 Microsoft Edge
【发布时间】:2016-02-26 12:35:48
【问题描述】:

在 Windows 10 build 10240 的 Microsoft Edge 上测试。在 build 10586 中已修复。

概要

在将namespaceURI 设置为null 的文档上运行XMLDocument.prototype.evaluate 会使Microsoft Edge 中的当前选项卡进程崩溃,使该选项卡的开发人员工具无响应,将调试信息发送到watson.telemetry.microsoft.com,并强制重新加载页面。

复制

要重现,在 Microsoft Edge 中打开任意网站,按 F12 打开开发者工具,选择 Console,然后运行这 3 行 javascript:

var doc = document.implementation.createDocument(null, null, null);
var node = doc.createElement('A');
doc.evaluate('B', node, doc.createNSResolver(doc), 9, null);

【问题讨论】:

  • Windows 10(build 10856)最近发布;请应用此更新以查看问题是否仍然存在。我正在后期构建,无法重现崩溃。

标签: javascript xml xmldocument microsoft-edge


【解决方案1】:

解决方法

在运行evaluate之前访问上下文节点的baseURI属性。

var doc = document.implementation.createDocument(null, null, null);
var node = doc.createElement('A');

node.baseURI; // Edge workaround http://stackoverflow.com/q/33887400/823663

doc.evaluate('B', node, doc.createNSResolver(doc), 9, null);

【讨论】:

    猜你喜欢
    • 2019-11-03
    • 2020-09-05
    • 1970-01-01
    • 2012-08-22
    • 2013-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    相关资源
    最近更新 更多