我有这个自执行函数:
<script type="text/javascript">
(function() {
var sc = document.createElement('script');
sc.src = 'http://blahblah.com/test.js';
sc.type = 'text/javascript';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(sc, s);
})();
</script>
test.js 中包含的所有内容是:
document.write('ping!');
但是,它挂起了——我做错了什么吗?
我找到了绕过 document.write 的方法,但现在唯一的问题是为什么这不起作用。
var nc = document.createElement('div');
nc.appendChild(document.createTextNode('blah'));
var scr = document.getElementsByTagName('script')[0];
scr.parentNode.insertBefore(nc, scr);
最佳答案
我不知道您要完成什么,但只要您的代码托管在 http://blahblah.com/
上,它就是有效的。
您的浏览器不会让您执行远程代码来操纵原始页面。这不是愚蠢的。
关于javascript - 自执行函数和 document.write,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3104609/