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 相关文章推荐
制作特殊字的脚本
Jun 26 Javascript
JavaScript中的事件处理
Jan 16 Javascript
Javascript 匿名函数及其代码模式原理
Mar 19 Javascript
jquery实现效果比较好的table选中行颜色
Mar 25 Javascript
JavaScript的jQuery库中function的存在和参数问题
Aug 13 Javascript
JavaScript基于对象去除数组重复项的方法
Oct 09 Javascript
Angular ng-repeat指令实例以及扩展部分
Dec 26 Javascript
vue中阻止click事件冒泡,防止触发另一个事件的方法
Feb 08 Javascript
vue如何将v-for中的表格导出来
May 07 Javascript
详解在网页上通过JS实现文本的语音朗读
Mar 28 Javascript
Angular.JS读取数据库数据调用完整实例
Jul 02 Javascript
解决angular 使用原生拖拽页面卡顿及表单控件输入延迟问题
Apr 21 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
海贼王:最美的悬赏令!
2020/03/02 日漫
php GUID生成函数和类
2014/03/10 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
2014/10/16 PHP
将PHP的session数据存储到数据库中的代码实例
2016/06/24 PHP
php微信公众平台开发(一) 配置接口
2016/12/06 PHP
JavaScript Object的extend是一个常用的功能
2009/12/02 Javascript
ko knockoutjs动态属性绑定技巧应用
2012/11/14 Javascript
使用jQuery validate 验证注册表单实例演示
2013/03/25 Javascript
3种js实现string的substring方法
2015/11/09 Javascript
学习JavaScript事件流和事件处理程序
2016/01/25 Javascript
Javascript字符串常用方法详解
2016/07/21 Javascript
微信小程序中单位rpx和rem的使用
2016/12/06 Javascript
JS获取短信验证码倒计时的实现代码
2017/05/22 Javascript
jquery.validate.js 多个相同name的处理方式
2017/07/10 jQuery
浅谈vue 单文件探索
2018/09/05 Javascript
基于Three.js实现360度全景图片
2018/12/30 Javascript
js获取对象,数组所有属性键值(key)和对应值(value)的方法示例
2019/06/19 Javascript
bootstrap-table+treegrid实现树形表格
2019/07/26 Javascript
layui table 表格模板按钮的实例代码
2019/09/21 Javascript
js实现无缝轮播图
2020/03/09 Javascript
[01:43]深扒TI7聊天轮盘语音出处4
2017/05/11 DOTA
Python面向对象编程中关于类和方法的学习笔记
2016/06/30 Python
Django单元测试工具test client使用详解
2019/08/02 Python
基于h5py的使用及数据封装代码
2019/12/26 Python
Python综合应用名片管理系统案例详解
2020/01/03 Python
使用Python打造一款间谍程序的流程分析
2020/02/21 Python
python性能测试工具locust的使用
2020/12/28 Python
基于CSS3的CSS 多栏(Multi-column)实现瀑布流源码分享
2014/06/11 HTML / CSS
雅诗兰黛旗下专业男士保养领导品牌:Lab Series
2017/05/15 全球购物
2013年入党人员的自我鉴定
2013/10/25 职场文书
大学军训感言1000字
2014/02/25 职场文书
2015年销售部工作总结范文
2015/04/27 职场文书
网络营销实训总结
2015/08/03 职场文书
2015质检员个人年终工作总结
2015/10/23 职场文书
iSCSI服务器CHAP双向认证配置
2022/04/01 Servers
【海涛dota解说】DCG联赛第一周 LGD VS DH
2022/04/01 DOTA