Javascript:";取消“;动态脚本标签?

Javascript:";取消“;动态脚本标签?,javascript,ajax,dynamic,scripting,Javascript,Ajax,Dynamic,Scripting,我使用动态脚本标记从外部域请求javascript。有时请求时间太长;如果请求时间过长,是否可以停止请求或超时 我不想使用xmlhttprequest,因为我想避免使用服务器端代理 谢谢 动态添加脚本有多种方法,一种方法是在DOM就绪时将节点附加到文档正文中,然后在加载时间过长时将其删除 <html> <head> <title>bla</title> <script type="text/javascript"

我使用动态脚本标记从外部域请求javascript。有时请求时间太长;如果请求时间过长,是否可以停止请求或超时

我不想使用xmlhttprequest,因为我想避免使用服务器端代理


谢谢

动态添加脚本有多种方法,一种方法是在DOM就绪时将
节点附加到文档正文中,然后在加载时间过长时将其删除

   <html>
    <head>
    <title>bla</title>
    <script type="text/javascript">
      function init(){
         var max_time = 2000 //in milliseconds
         g_script_url = "http://yoursite.net/script.js";
         var script = document.createElement("script"); 
         script.setAttribute("src",script_url);
         script.setAttribute("type","text/javascript");   
         document.body.appendChild(script);   

         g_timeout=setTimeout(function(){ 
           var scripts = document.getElementsByTagName("script");
           for (var i=0; i < scripts.length; i++ ){
           if (scripts[i].src == script_url){
              document.body.removeChild(scripts[i]);
            }
           }   
          },max_time);
        }

     window.addEventListener("DOMContentLoaded", init, false);
    </script>
  </head>
   <body>bla bla [...]</body>
  </html>
注意:


document.addEventListener在IE中不起作用,如果您想要一个跨平台的解决方案,请使用Jquery的方法或查看一下

,我假设它们是指一个脚本标记,它本身由现有脚本写入页面(以便动态加载新脚本)。不确定为什么要修改它,我看不出有任何理由这样做+1来补偿。这似乎不起作用。我创建了一个休眠10秒的脚本,然后返回并将其作为脚本src插入,请求不会被取消。
/* end of http://yoursite.net/script.js's code */
clearTimout(g_timeout);