据我所知,HTML 输入是字节流,document.write()
可以通过插入新字节来更改流。例如
document.write("<p> an example </p>");
另外 HTML5 规范的解析模型只表示document.write()
可以改变 HTML 输入,但并没有说这是唯一的因素。
是否有任何其他因素会改变 HTML 输入?
据我所知,HTML 输入是字节流,document.write()
可以通过插入新字节来更改流。例如
document.write("<p> an example </p>");
另外 HTML5 规范的解析模型只表示document.write()
可以改变 HTML 输入,但并没有说这是唯一的因素。
是否有任何其他因素会改变 HTML 输入?
还有document.writeln,但仅此而已。
如果您在他们指出的位置旁边查看他们的树模型,document.write()
则表明脚本执行是在实际树创建之外处理的。我相信,这意味着任何操纵 dom 的脚本都将与document.write()
.
这些将包括但不限于:
el.innerHTML = '';
el.innerText = '';
el.style = '';
el.insertBefore = '';
el.insertAfter = '';
el.createDocumentFragment;
el.appendChild();
el.removeChild(); //note this is the only supported way of removing from the html bit stream
document.write();
//and anything else that changes either the html, css or even other scripts in the
//document.