JavaScript - 控制 document.write 的插入点

2024-04-15

我想创建一个运行第三方脚本的页面,其中包括document.write当 DOM 已经完全加载之后。

我的页面不是 XHTML。我的问题是 document.write 正在覆盖我自己的页面。 (这就是 DOM 加载后它所做的事情)。

我尝试重写 document.write 函数(以类似于http://ejohn.org/blog/xhtml-documentwrite-and-adsense/ http://ejohn.org/blog/xhtml-documentwrite-and-adsense/)但这不包括 document.write 包含部分标签的情况。

破坏上述代码的一个例子是:

document.write("<"+"div");
document.write(">"+"Done here<"+"/");
document.write("div>");

有没有办法通过 JavaScript 修改 document.write 插入点?有谁有更好的想法如何做到这一点?


如果您正在处理第 3 方脚本,仅仅替换 document.write 来捕获输出并将其粘贴在正确的位置还不够,因为他们可能会更改脚本,然后您的网站就会崩溃。

写捕获.js http://github.com/iamnoah/writeCapture做你需要的事情(完全披露:我是作者)。它基本上重写了脚本标签,以便每个标签都捕获它自己的document.write输出并将其放在正确的位置。用法(使用 jQuery)类似于:

$(document.body).writeCapture().append('<script type="text/javascript" src="http://3rdparty.com/foo.js"></script>');

在这里,我假设您想附加到正文的末尾。所有 jQuery 选择器和操作方法都可以与该插件配合使用,因此您可以将其注入任何您想要的地方。如果有问题的话,它也可以在没有 jQuery 的情况下使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript - 控制 document.write 的插入点 的相关文章

随机推荐