异步加载尝试使用 document.write() 修改文档时,脚本可能会导致问题。页面加载执行后,脚本会异步下载,但会失败并显示控制台消息“除非显式打开,否则无法从异步加载的外部脚本写入文档。”
异步加载的脚本在文档解析并关闭后执行。因此,诸如 document.write() 之类的操作在这些脚本中变得不可用。
要解决此问题,请使用显式 DOM 操作替换 document.write() 调用。这涉及创建 DOM 元素并使用appendChild()、insertBefore()或设置innerHTML将它们插入到父元素中。
原始脚本(内联,带有 document.html ) write()):
<code class="html"><div id="container"> <script> document.write('<span style="color:red;">Hello</span>'); </script> </div></code>
修改后的脚本(异步加载,使用 DOM 操作):
<code class="javascript">var container = document.getElementById("container"); var content = document.createElement("span"); content.style.color = "red"; content.innerHTML = "Hello"; container.appendChild(content);</code>
以上是如何解决'无法从异步加载的外部脚本写入文档”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!