我正在使用javascript来转换DOM,其中包含一个自定义标记(我无法控制其名称)。
然后我在父元素上调用innerHTML
以将转换后的DOM作为字符串。我的问题是,只是这样做DOM更改,我假设是因为自定义标记。
请参阅下面的最小示例。忽略由代码段管道添加的额外脚本位,关键是pagebreak标记现在包裹test
。
我如何防止这种情况,并在进行innerHTML
通话时保留DOM?
console.log(document.getElementsByTagName('body')[0].innerHTML);
<html>
<body>
<mbp:pagebreak />test
</body>
</html>
答案 0 :(得分:1)
自定义元素是非空的,因此您应该指定一个结束标记,如下所示:
console.log(document.getElementById('test').innerHTML);
&#13;
<div id="test">
<mbp:pagebreak></mbp:pagebreak>test
</div>
&#13;