javascript - 有没有办法使用 document.write 但写入正文顶部?

标签 javascript

所以基本上我有一个外部 JS 文件,我需要将其托管在其他人的页面上。该JS文件使用document.write在页面上写入HTML。

现在它嵌入了包含 JS 文件的 HTML,但我希望将 HTML 写入页面顶部,就在 <body> 之后。 。

有办法做到这一点吗?考虑到嵌入 JS 文件的人将无法简单地将其放置在 body 标记后面。

最佳答案

如果可以的话,avoid using document.write 。以下是插入脚本并执行的常见方法:

document.addEventListener('DOMContentLoaded', function(){
    var s = document.createElement('script');
    s.src = "my_script.js";
    document.body.appendChild(s);
}, false);

如果您想添加任何其他 HTML,您可以使用 innerHTML ,但有时最好避免使用它,因为它将替换所有元素(并且可能会破坏之前设置的一些事件监听器)。相反,您可以使用 insertAdjacentHTML 。请注意,如果通过此方法添加脚本,则不会执行该脚本:

document.addEventListener('DOMContentLoaded', function(){
    var code = '<style>.class{color:red}</style><div class="class">Hello</div>';
    document.body.insertAdjacentHTML('afterbegin', code);
}, false);

您可以使用以下选项选择代码附加位置:beforebeginafterbeginbeforeendafterend.

关于javascript - 有没有办法使用 document.write 但写入正文顶部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38947554/

相关文章:

javascript - 使用css/js切换黑白图像的颜色

javascript - vuejs 中未触发事件

javascript - Angular2 不能正常工作

javascript - 定义在每个页面加载时运行的函数

javascript - Chrome 打包应用程序;将文件条目复制到用户的下载目录

javascript - 删除包含页面的 iframe 时不会触发 onbeforeunload

javascript - 使用 Jest 在另一个模块的依赖项中断言函数调用

javascript - 在函数调用时重绘 Google map 圆圈和标记

javascript - 通过GET请求获取YouTube播放列表的所有视频ID

javascript - javascript 中的对象文字如何工作?