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中实现私有属性的写类方式(一)
Dec 04 Javascript
使用简洁的jQuery方法实现隔行换色功能
Jan 02 Javascript
使用jQuery实现验证上传图片的格式与大小
Dec 03 Javascript
js控制输入框获得和失去焦点时状态显示的方法
Jan 30 Javascript
D3.js实现散点图和气泡图的方法详解
Sep 21 Javascript
JS动态遍历json中所有键值对的方法(不知道属性名的情况)
Dec 28 Javascript
jQuery选择器之属性过滤选择器详解
Sep 28 jQuery
vue中v-cloak解决刷新或者加载出现闪烁问题(显示变量)
Apr 20 Javascript
ES6 系列之 WeakMap的使用示例
Aug 06 Javascript
Node批量爬取头条视频并保存方法
Sep 20 Javascript
使用ECharts实现状态区间图
Oct 25 Javascript
vuejs实现下拉框菜单选择
Oct 23 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权限分级式访问控制的实现(非RBAC法)
2013/06/13 PHP
JS 去除Array中的null值示例代码
2013/11/20 Javascript
javascript生成随机大小写字母的方法
2014/02/20 Javascript
基于iframe实现类似于ajax的页面无刷新
2014/05/31 Javascript
JavaScript之数组(Array)详解
2015/04/01 Javascript
javascript实现简易计算器的代码
2016/05/31 Javascript
1秒50万字!js实现关键词匹配
2016/08/01 Javascript
最实用的jQuery分页插件
2016/10/09 Javascript
vue.js开发环境安装教程
2017/03/17 Javascript
手挽手带你学React之React-router4.x的使用
2019/02/14 Javascript
解决layui动态添加的元素click等事件触发不了的问题
2019/09/20 Javascript
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
2020/06/02 Javascript
vscode 插件开发 + vue的操作方法
2020/06/05 Javascript
原生js canvas实现鼠标跟随效果
2020/08/02 Javascript
vue3.0实现插件封装
2020/12/14 Vue.js
[43:58]DOTA2-DPC中国联赛定级赛 LBZS vs SAG BO3第一场 1月8日
2021/03/11 DOTA
python中文乱码的解决方法
2013/11/04 Python
python将xml xsl文件生成html文件存储示例讲解
2013/12/03 Python
Python help()函数用法详解
2014/03/11 Python
Python中用altzone()方法处理时区的教程
2015/05/22 Python
python爬虫headers设置后无效的解决方法
2017/10/21 Python
简单实现python聊天程序
2018/04/01 Python
python开启debug模式的方法
2019/06/27 Python
python django model联合主键的例子
2019/08/06 Python
使用Python 自动生成 Word 文档的教程
2020/02/13 Python
python生成任意频率正弦波方式
2020/02/25 Python
如何使用python自带IDLE的几种方法
2020/10/10 Python
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
英国的领先快速时尚零售商:In The Style
2019/03/25 全球购物
瑞典最大的儿童用品网上商店:pinkorblue.se
2021/03/09 全球购物
运动会广播稿20字
2014/02/18 职场文书
《与象共舞》教学反思
2014/02/24 职场文书
2014年新生军训方案
2014/05/01 职场文书
励志演讲稿3分钟
2014/08/21 职场文书
导游词之开封禹王台风景区
2019/12/02 职场文书
Redis+Lua脚本实现计数器接口防刷功能(升级版)
2022/02/12 Redis