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 相关文章推荐
JQuery从头学起第二讲
Jul 04 Javascript
javascript的console.log()用法小结
May 31 Javascript
JS声明变量背后的编译原理剖析
Dec 28 Javascript
jquery.post用法关于type设置问题补充
Jan 03 Javascript
JavaScript使用setTimeout实现延迟弹出警告框的方法
Apr 07 Javascript
BootStrap栅格系统、表单样式与按钮样式源码解析
Jan 20 Javascript
canvas绘制表盘时钟
Jan 23 Javascript
jQuery Collapse1.1.0折叠插件简单使用
Aug 28 jQuery
Vue.js 父子组件通信的十种方式
Oct 30 Javascript
vue如何实现自定义底部菜单栏
Jul 01 Javascript
如何在Angular8.0下使用ngx-translate进行国际化配置
Jul 24 Javascript
java遇到微信小程序 &quot;支付验证签名失败&quot; 问题解决
Dec 22 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
Yii学习总结之数据访问对象 (DAO)
2015/02/22 PHP
php获取今日开始时间和结束时间的方法
2017/02/27 PHP
setTimeout 不断吐食CPU的问题分析
2009/04/01 Javascript
IE8 原生JSON支持
2009/04/13 Javascript
兼容IE和Firefox火狐的上下、左右循环无间断滚动JS代码
2013/04/19 Javascript
JQuery给元素绑定click事件多次执行的解决方法
2014/05/29 Javascript
jQuery使用animate创建动画用法实例
2015/08/07 Javascript
jQuery实现jQuery-form.js实现异步上传文件
2017/04/28 jQuery
利用node.js如何搭建一个简易的即时响应服务器
2017/05/28 Javascript
js+html5实现半透明遮罩层弹框效果
2020/08/24 Javascript
vue实现移动端图片裁剪上传功能
2020/08/18 Javascript
ES6中字符串string常用的新增方法小结
2017/11/07 Javascript
解决vue-cli脚手架打包后vendor文件过大的问题
2018/09/27 Javascript
浅谈目前可以使用ES10的5个新特性
2019/06/25 Javascript
jquery选择器和属性对象的操作实例分析
2020/01/10 jQuery
Python中read()、readline()和readlines()三者间的区别和用法
2017/07/30 Python
python递归打印某个目录的内容(实例讲解)
2017/08/30 Python
TensorFlow安装及jupyter notebook配置方法
2017/09/08 Python
对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解
2018/06/28 Python
python一键去抖音视频水印工具
2018/09/14 Python
python绘制直方图和密度图的实例
2019/07/08 Python
详解Python 中sys.stdin.readline()的用法
2019/09/12 Python
Pandas 缺失数据处理的实现
2019/11/04 Python
python数据预处理 :样本分布不均的解决(过采样和欠采样)
2020/02/29 Python
django为Form生成的label标签添加class方式
2020/05/20 Python
英国领先的鞋类零售商:Shoe Zone
2018/12/13 全球购物
幼儿园托班开学寄语
2014/01/18 职场文书
政法学院毕业生求职信
2014/02/28 职场文书
法学自荐信
2014/06/20 职场文书
公安机关纪律作风整顿个人剖析材料材料
2014/10/10 职场文书
幼儿园见习报告范文
2014/10/30 职场文书
领导干部考核评语
2015/01/04 职场文书
高校自主招生自荐信2015
2015/03/04 职场文书
公司前台接待岗位职责
2015/04/03 职场文书
vue-cropper组件实现图片切割上传
2021/05/27 Vue.js
pt-archiver 主键自增
2022/04/26 MySQL