技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> JavaScript --> JS文件加载失败处理

JS文件加载失败处理

浏览:2620次  出处信息

    浏览器的文件加载实际上是有非常纠结的兼容问题的。最近看到@lifesinger做了一个具体的总结。这里比较麻烦的是IE6~8不区分加载成功或失败,都走一个回调。在网上看了一种解决方案是,在加载文件的最后置一个全局变量或改变标签的属性来区分,这样成功与否就通过这个标志位判断。但显然不太完美,还要改加载文件。

    后来尝试另一种思路,先创建一个vbscript,src置成一个JS文件,如这个文件加载正常,肯定会报错否则不会有反应。这样如果window.onerror捕获到错误了,说明文件有效,再正常加载。如果没捕获到,n秒后会触发一个超时。

    这部分代码:

      if(ie && ie < 9) {
        vbs = doc.createElement(\'script\');
        vbs.language = \'vbscript\';
        vbs.src = file;
       saveErrorHandle = win.onerror;
       win.onerror = function() {
         load();
         win.onerror = saveErrorHandle;
         return true;
       };
       setTimeout(function(){
         ref.parentNode.insertBefore(vbs, ref);
       }, 0);
     } else {
       load();
     }

    DEMO: http://hikejun.com/demo/demo_js_errorback.html

建议继续学习:

  1. php无法加载pcre.so的解决办法    (阅读:3013)
  2. 用C++面向对象的方式动态加载so    (阅读:2878)
  3. 一个IE6下重复加载的BUG    (阅读:2858)
  4. IE6图片加载的一个BUG    (阅读:2680)
  5. 渐进式的脚本加载    (阅读:2415)
  6. 动态加载JavaScript的小实践    (阅读:2246)
  7. 交互模式之分页还是加载?    (阅读:2023)
  8. 关于Feed流信息的加载方式    (阅读:1975)
  9. 内容loading加载后高度变化CSS3 transition体验优化    (阅读:1614)
  10. 加载,不只是少一点点    (阅读:1714)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1