Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 自执行函数和document.write_Javascript - Fatal编程技术网

Javascript 自执行函数和document.write

Javascript 自执行函数和document.write,javascript,Javascript,我有这个自动执行功能: <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.pa

我有这个自动执行功能:

<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>
但是,它挂起了--我是不是做错了什么

我找到了一种方法来绕过文档。写吧,但现在唯一的问题是,为什么这不起作用

var nc = document.createElement('div');  
nc.appendChild(document.createTextNode('blah'));  
var scr = document.getElementsByTagName('script')[0];  
scr.parentNode.insertBefore(nc, scr);  

我不知道您试图实现什么,但只要您的代码托管在
http://blahblah.com/


您的浏览器不允许您执行远程代码来操作原始页面。没那么蠢。

你为什么这么做?你想实现什么?它是否适用于所有浏览器?脚本中是否还有其他可能导致浏览器挂起的内容?我编写了一些与您的代码类似的简单测试,它们在Firefox、Safari和Chrome上运行良好。JavaScript是。该页面最初以文本“World!”开头,在远程脚本加载后,该文本被显示“Hello”的新文档替换。@Anurag,在firefox中,它从未停止加载。我也看到了永久加载微调器,但这是firefox的一个问题。页面确实加载了,并且没有按照传统的方式挂起-死神蓝屏或ctrl+alt+del kind。运行远程脚本没有什么问题。问题是当他们试图操纵DOM时,等等。不完全是这样,以这种方式包括外部脚本是完全有效的,例如,这就是工作原理。。。真正的问题是…>您的浏览器不允许您执行远程代码来操作原始页面。没那么蠢。嗯,那不是真的。多尔夫是对的,如果两个脚本不在同一个域上,它将无法工作。不是那样的。JSON-P正在工作,因为获取的内容由本地脚本评估。要想做到这一点,你必须下载一个字符串,然后对该字符串求值。@Claude@Dolph-这不是真的。远程脚本将具有相同的权限,除非它位于iframe内,并且域不匹配。
var nc = document.createElement('div');  
nc.appendChild(document.createTextNode('blah'));  
var scr = document.getElementsByTagName('script')[0];  
scr.parentNode.insertBefore(nc, scr);