在Windows Metro应用程序中修改DOM时的HierarchyRequestError

时间:2012-07-02 22:15:19

标签: microsoft-metro winjs

我正在使用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);
}

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

1 个答案:

答案 0 :(得分:11)

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

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

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