【问题标题】:HierarchyRequestError when modifying DOM in Windows Metro application在 Windows Metro 应用程序中修改 DOM 时出现 HierarchyRequestError
【发布时间】:2012-07-02 22:15:18
【问题描述】:

我正在使用 Javascript 和 HTML 构建一个 Windows Metro 应用程序,但它会因HierarchyRequestError 而崩溃:

Exception was thrown but not handled in user code at line 11, column 9 in ms-appx://21706d2f-b81e-47ef-9ebb-37de36c7a258/js/default.js
0x800a139e - JavaScript runtime error: HierarchyRequestError

在引发错误的那一行,我正在做一些简单的 DOM 操作并尝试将我创建的节点插入到文档中:

function insertData(hnode) {
    document.querySelector('#datanode').appendChild(hnode);
}

为什么会因为这样的错误而失败?

【问题讨论】:

    标签: microsoft-metro winjs


    【解决方案1】:

    当您尝试将 undefined 或其他一些无效值插入 DOM 时,会抛出 HierarchyRequestError

    在问题的函数中,hnode 可能是undefined,例如因为insertData() 被调用时没有参数。

    要调试这种情况并找出对insertData() 的调用是问题所在,可以使用Visual Studio 中的条件断点。如果设置断点,请右键单击它并选择“条件...”。像hnode === undefined 这样的条件可以用来打破有趣的情况。

    【讨论】:

    • 更像 typeof hnode === 'undefined'
    • @eomeroff:这也可以,但并没有真正的不同。
    猜你喜欢
    • 2014-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多