复制文档写入行为

  • 本文关键字:文档 复制 javascript
  • 更新时间 :
  • 英文 :


在过去的几周里,我正在尝试用我自己的实现替换document.write,这样我就可以加载一些异步使用它的第三方JS。 我已经取得了一些进展,但document.write可能非常复杂。 我正在使用"DOMImplementation.createHTMLDocument(("创建一个空的HTML文档来解析初始html,而不是我将节点附加到真正的dom,并且在其中一些节点中有使用document.write的脚本标签。 为了处理这些调用,我首先尝试再次解析该 html 并将其附加到发起调用的脚本标记之后,但这种情况不处理部分 html ,例如:

document.write("<di");document.write("v></div>";
document.write("<scri");document.write("pt src='example.com></script>");

我可以将所有 HTML 推送到缓冲区并在脚本完成后刷新它,但我还需要处理更多情况,例如:

document.write("<div id='test1'></div>");document.getElementById("test1");

这在我的案件中将不存在。

任何想法如何可靠地处理文档.write?

顺便说一句:Node.querySelectorAll("*");属性是否会以与它们在 DOM 中相同的顺序可靠地返回节点?例如:

document.body.querySelectorAll("*"); -->
<body>
<div id="test1">
<div id="test2">
<img id="img1">
</div>
<img id="img2">
</div>
</body>>

将始终输出 --> test1->test2->img1->img2

我不太明白你的问题,但我可以用document.innerHTML对document.write进行polyfill。

这是代码

document.innerHTML += text;

相关内容

最新更新