IE及IE6浏览器中判断JS文件加载成功失败的方法


Posted in Javascript onFebruary 18, 2015

浏览器的文件加载实际上是有非常纠结的兼容问题的。最近看到@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();

     }
Javascript 相关文章推荐
一些常用的JavaScript函数(json)附详细说明
May 25 Javascript
基于jquery的web页面日期格式化插件
Nov 15 Javascript
IE6下opacity与JQuery的奇妙结合
Mar 01 Javascript
多次注册事件会导致一个事件被触发多次的解决方法
Aug 12 Javascript
Javascript基础教程之定义和调用函数
Jan 18 Javascript
检测一个函数是否是JavaScript原生函数的小技巧
Mar 13 Javascript
javascript组合使用构造函数模式和原型模式实例
Jun 04 Javascript
JavaScript多线程详解
Aug 12 Javascript
javascript实现起伏的水波背景效果
May 16 Javascript
详解Vue.js搭建路由报错 router.map is not a function
Jun 27 Javascript
ES6与CommonJS中的模块处理的区别
Jun 13 Javascript
关于vue-cli3打包代码后白屏的解决方案
Sep 02 Javascript
使用JavaScript开发IE浏览器本地插件实例
Feb 18 #Javascript
JQuery实现展开关闭层的方法
Feb 17 #Javascript
jQuery实现鼠标滑过Div层背景变颜色的方法
Feb 17 #Javascript
JS点击链接后慢慢展开隐藏着图片的方法
Feb 17 #Javascript
js实现按钮控制图片360度翻转特效的方法
Feb 17 #Javascript
js实现鼠标悬停图片上时滚动文字说明的方法
Feb 17 #Javascript
js鼠标滑过图片震动特效的方法
Feb 17 #Javascript
You might like
PHP5中Cookie与 Session使用详解
2013/04/30 PHP
CI(CodeIgniter)框架中的增删改查操作
2014/06/10 PHP
yii中widget的用法
2014/12/03 PHP
PHP基于IMAP收取邮件的方法示例
2017/08/07 PHP
PHP设计模式之原型设计模式原理与用法分析
2018/04/25 PHP
php操作redis常见方法示例【key与value操作】
2020/04/14 PHP
JavaScript使用prototype定义对象类型
2007/02/07 Javascript
JavaScript写的一个DIV 弹出网页对话框
2009/08/14 Javascript
JavaScript中string对象
2015/06/12 Javascript
详解js私有作用域中创建特权方法
2016/01/25 Javascript
基于JavaScript实现文字超出部分隐藏
2016/02/29 Javascript
JavaScript学习笔记之取数组中最大值和最小值
2016/03/23 Javascript
bootstrap+jQuery实现的动态进度条功能示例
2017/05/25 jQuery
Angular4实现动态添加删除表单输入框功能
2017/08/11 Javascript
详解js几个绕不开的事件兼容写法
2017/08/30 Javascript
js实现视图和数据双向绑定的方法分析
2020/02/05 Javascript
js 动态校验开始结束时间的实现代码
2020/05/25 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
2020/07/12 Javascript
[02:17]2016国际邀请赛中国区预选赛VG战队领队采访
2016/06/26 DOTA
[49:20]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
浅谈Scrapy框架普通反爬虫机制的应对策略
2017/12/28 Python
浅谈python脚本设置运行参数的方法
2018/12/03 Python
Django项目创建到启动详解(最全最详细)
2019/09/07 Python
python实现密码强度校验
2020/03/18 Python
Python count函数使用方法实例解析
2020/03/23 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
2020/06/03 Python
带你学习Python如何实现回归树模型
2020/07/16 Python
如何以Winsows Service方式运行JupyterLab
2020/08/30 Python
荷兰的时尚市场:To Be Dressed
2019/05/06 全球购物
美国婴儿和儿童服装购物网站:PatPat
2020/10/01 全球购物
List, Set, Map是否继承自Collection接口?
2016/05/16 面试题
幼儿园教师个人总结
2015/02/05 职场文书
爱晚亭导游词
2015/02/09 职场文书
心理健康教育培训研修感言
2015/11/18 职场文书
go:垃圾回收GC触发条件详解
2021/04/24 Golang
MySQL中InnoDB存储引擎的锁的基本使用教程
2021/05/26 MySQL