<script type=“text/javascript”src=“/myapp/htmlCode”></script>
8个答案
函数loadScript(url,回调){ var script=document.createElement(“script”) script.type=“text/javascript”; if(script.readyState){//仅IE<9需要 script.onreadystatechange=函数(){ if(script.readyState===“已加载”||script.ready State===”complete“){ script.onreadystatechange=空; 回调(); } }; }else{//其他 script.onload=函数(){ 回调(); }; } script.src=url; document.getElementsByTagName(“head”)[0].appendChild(script); } //调用函数。。。 loadScript(路径脚本,函数(){ 警报('script ready!'); });
-
8 -
11 -
-
4 这个 有负载的 当脚本尚未完成执行时,不可能调用处理程序,因为Javascript是单线程的。 这意味着 有负载的 处理程序只能在脚本开始执行之前或完成执行之后调用。 我个人从未见过前一种情况发生。。。 曾经。 如果有人知道一个可复制的案例 有负载的 处理程序可以在脚本开始执行之前调用,请告诉我们。 – 获取免费 评论 2019年2月12日18:50 -
加载脚本数组的简单扩展: 函数loadScripts(urls,回调){var counter=0 for(var i=0;i<urls.length;i++){loadScript(urls[i],function(){if(++counter==urls.longth){callback()}})} – 瑞典 评论 2020年5月5日17:49
//定义 函数loadScript(scriptUrl){ const script=document.createElement('script'); script.src=脚本URL; document.body.appendChild(脚本); return new Promise((res,rej)=>{ script.onload=函数(){ res(); } script.onerror=函数(){ rej(); } }); } //使用 loadScript(' http://your-cdn/jquery.js ') 然后(()=>{ console.log('脚本已加载!'); }) .catch(()=>{ console.error('脚本加载失败!处理此错误'); });
script.onload=资源; script.onerror=rej;
-
2 -
1 @Kunukn还有一个较短的 return new Promise(res=>script.onload=res) 。但是将函数分配给 有负载的 更易于阅读,并允许您在解决时传递参数 评论 2019年2月1日9:50
<script onload=“loadedContent();”src=“/myapp/myCode.js”></script>
var script=document.createElement('script'); if(script.readyState){//IE script.onreadystatechange=函数(){ if(script.readyState===“已加载”||script.ready State===”complete“){ script.onreadystatechange=空; 警报(jQuery); } }; }else{//其他 script.onload=函数(){ 警报(jQuery); } } script.src=“ http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js " document.documentElement.appendChild(脚本);
//循环加载脚本 函数load_scripts(url,final_callback,index=0) { if(url类型[索引+1]===“未定义”) { load_script(urls[index],final_callback); } 其他的 { load_script(urls[索引],function(){ load_scripts(url、final_callback、index+1); } ); } } //加载脚本 函数load_script(url,回调) { var script=document.createElement(“script”); script.type=“text/javascript”; if(script.readyState)//IE { script.onreadystatechange=函数() { if(script.readyState===“已加载”||script.ready State===”complete“) { script.onreadystatechange=空; 回调(); } }; } else//其他 { script.onload=函数(){callback();}; } script.src=url; document.getElementsByTagName(“head”)[0].appendChild(script); 调试(“包含javascript:”+url); } //示例 var main=函数() { console.log(“执行的主功能”); } var js=[“path/to/script-1”,“path.to/script-2”,“path/to/stcript-3”]; 加载脚本(js,main);
等待新的Promise((解析)=>{ let script=document.createElement(“script”); script.onload=()=>{ resolve(); }; script.src=“ https://example.net/app.js "; document.head.appendChild(脚本); });