Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.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 在加载元素后设置onload属性是否仍会运行处理程序?_Javascript_Html_Dom - Fatal编程技术网

Javascript 在加载元素后设置onload属性是否仍会运行处理程序?

Javascript 在加载元素后设置onload属性是否仍会运行处理程序?,javascript,html,dom,Javascript,Html,Dom,如果在元素已加载后设置其onload属性,会发生什么情况?处理程序是立即执行的还是被忽略的?您能给出一个示例吗?我认为这段代码可能会帮助您: function loadScript(url, callback){ var script = document.createElement("script") script.type = "text/javascript"; if (script.readyState){ //IE

如果在元素已加载后设置其onload属性,会发生什么情况?处理程序是立即执行的还是被忽略的?

您能给出一个示例吗?我认为这段代码可能会帮助您:

 function loadScript(url, callback){    
        var script = document.createElement("script")
        script.type = "text/javascript";

        if (script.readyState){  //IE
            script.onreadystatechange = function(){
                if (script.readyState == "loaded" ||
                        script.readyState == "complete"){
                    script.onreadystatechange = null;
                    callback();
                }
            };
        } else {  //Others
            script.onload = function(){
                callback();
            };
        }

        script.src = url;
        document.getElementsByTagName("head")[0].appendChild(script);
    }


    <script type="text/javascript" src="http://your.cdn.com/first.js"></script>
    <script type="text/javascript">
    loadScript("http://your.cdn.com/second.js", function(){
        //initialization code
    });
    </script>
函数加载脚本(url,回调){
var script=document.createElement(“脚本”)
script.type=“text/javascript”;
if(script.readyState){//IE
script.onreadystatechange=函数(){
如果(script.readyState==“已加载”||
script.readyState==“完成”){
script.onreadystatechange=null;
回调();
}
};
}其他{//其他
script.onload=函数(){
回调();
};
}
script.src=url;
document.getElementsByTagName(“head”)[0].appendChild(脚本);
}
加载脚本(“http://your.cdn.com/second.js“,函数(){
//初始化代码
});

什么都没有。它被忽略了。事件发生时会发生,不受时间限制的事件处理程序不会启动。

我正在加载一个图像,但我假设同样的概念也适用。不知道readyState.script.onload=function(){callback();};可以使用callbakc()函数加载头脚本文档。getElementsByTagName(“头”)[0]。appendChild(脚本);用于加载头脚本。。。