异步脚本加载:了解 document.write() 限制
异步执行脚本时,在初始页面加载后,必须意识到它对文档操作造成的限制。正如控制台消息中所述,“除非显式打开,否则不可能从异步加载的外部脚本写入文档。”
这意味着在此类外部脚本中使用 document.write()即使脚本本身加载成功,加载的脚本也不会有效地写入文档。原因在于异步脚本在文档被解析并关闭后运行。
要解决这个问题,有必要用显式 DOM 操作替换 document.write() 。不要直接写入文档,而是创建所需的 DOM 元素,然后使用诸如appendChild()、insertBefore()之类的方法将它们附加到文档中,或者通过设置innerHTML属性。
例如,不要使用文档内联脚本中的 .write():
<div id="container"> <script> document.write('<span style="color:red;">Hello</span>'); </script> </div>
在动态加载的脚本中,将其替换为以下内容:
var container = document.getElementById("container"); var content = document.createElement("span"); content.style.color = "red"; content.innerHTML = "Hello"; container.appendChild(content);
或者,如果容器中没有其他内容,您可以直接设置innerHTML属性:
var container = document.getElementById("container"); container.innerHTML = '<span style="color:red;">Hello</span>';
通过遵循这些准则,您可以有效地从异步加载的脚本中操作DOM,而不会遇到“无法在'Document'上执行'write'”错误。
以上是如何覆盖异步脚本加载中的 document.write() 限制?的详细内容。更多信息请关注PHP中文网其他相关文章!