在Windows Metro应用程序中修改DOM时出现层次结构请求错误

8
我正在使用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个回答

11
当您试图将“undefined”或其他无效值插入DOM时,会抛出“HierarchyRequestError”。
在问题的函数中,“hnode”可能是“undefined”,例如,因为调用“insertData()”时没有参数。
要调试这种情况并找出哪个对“insertData()”的调用是问题所在,可以在Visual Studio中使用条件断点。如果设置一个断点,请右键单击它并选择“条件...”。可以使用类似于“hnode === undefined”的条件来仅在有趣的情况下中断。

更像是 typeof hnode === 'undefined' - eomeroff
@eomeroff:那也可以,但并没有什么区别。 - sth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接