考虑剧本..
<html>
<head>
<script type="text/javascript">
document.write('TEST');
</script>
</head>
<body>
Some body content ...
</body>
</html>
这工作正常,单词“TEST”被添加到<body>
但当
<script type="text/javascript">
window.onload = function(){
document.write('TEST');
}
</script>
使用,则正文内容将完全替换为单词“TEST”,即删除旧的正文内容,仅添加单词“TEST”。
仅当以下情况时才会发生这种情况document.write
被称为内window.onload
功能
我在 Chrome 中尝试过这个。难道我有什么错误吗?有什么建议 ?
document.write()
如果在文档解析完成并关闭后使用它,则不稳定。该行为在跨浏览器中是不可预测的,您根本不应该使用它。使用操作 DOMinnerHTML
or createElement
/createTextNode
反而。
来自Mozilla 文档 https://developer.mozilla.org/en/DOM/document.write:
写入已加载的文档而不调用 document.open() 将自动执行 document.open 调用。编写完成后,建议调用 document.close(),告诉浏览器完成页面加载。您编写的文本将被解析为文档的结构模型。在上面的示例中,h1 元素成为文档中的一个节点。
如果 document.write() 调用直接嵌入 HTML 代码中,则它不会调用 document.open()。
等效的 DOM 代码是:
window.onload = function(){
var tNode = document.createTextNode("TEST");
document.body.appendChild(tNode);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)