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 相关文章推荐
Js控制弹窗实现在任意分辨率下居中显示
Aug 01 Javascript
jquery自定义下拉列表示例
Apr 25 Javascript
从零学JSON之JSON数据结构
May 19 Javascript
jQuery判断数组是否包含了指定的元素
Mar 10 Javascript
JS实现带有抽屉效果的产品类网站多级导航菜单代码
Sep 15 Javascript
Javascript实现图片加载从模糊到清晰显示的方法
Jun 21 Javascript
JSON中key动态设置及JSON.parse和JSON.stringify()的区别
Dec 29 Javascript
js使用ajax传值给后台,后台返回字符串处理方法
Aug 08 Javascript
JS 音频可视化插件Wavesurfer.js的使用教程
Oct 31 Javascript
vue-cli3搭建项目的详细步骤
Dec 05 Javascript
在vue中使用防抖和节流,防止重复点击或重复上拉加载实例
Nov 13 Javascript
Element Breadcrumb 面包屑的使用方法
Jul 26 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
浅谈php提交form表单
2015/07/01 PHP
PHP面向对象程序设计(OOP)之方法重写(override)操作示例
2018/12/21 PHP
PHP常见字符串操作函数与用法总结
2019/03/04 PHP
Laravel 默认邮箱登录改成用户名登录的实现方法
2019/08/12 PHP
PHP安装扩展mcrypt以及相关依赖项深入讲解
2021/03/04 PHP
JS 自动安装exe程序
2008/11/30 Javascript
js字符编码函数区别分析
2011/12/28 Javascript
基于javascipt-dom编程 table对象的使用
2013/04/22 Javascript
jquery插件开发之实现md5插件
2014/03/17 Javascript
JS的框架Polymer中的dom-if和is属性使用说明
2015/07/29 Javascript
Jquery数字上下滚动动态切换插件
2015/08/08 Javascript
JS实现网页标题随机显示名人名言的方法
2015/11/03 Javascript
Jquery获取第一个子元素简单实例
2016/06/02 Javascript
Vuejs第七篇之Vuejs过渡动画案例全面解析
2016/09/05 Javascript
AngularJS实现Input格式化的方法
2016/11/07 Javascript
JavaScript通过改变文字透明度实现的文字闪烁效果实例
2017/04/27 Javascript
利用jquery如何从json中读取数据追加到html中
2017/12/01 jQuery
纯js封装的ajax功能函数与用法示例
2018/05/14 Javascript
Vue render渲染时间戳转时间,时间转时间戳及渲染进度条效果
2018/07/27 Javascript
vue中选项卡点击切换且能滑动切换功能的实现代码
2018/11/25 Javascript
vue插槽slot的理解和使用方法
2019/04/03 Javascript
jQuery删除/清空指定元素的所有子节点实例代码
2019/07/04 jQuery
layui 实现自动选择radio单选框(checked)的方法
2019/09/03 Javascript
JavaScript如何判断input数据类型
2020/02/06 Javascript
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例
2018/08/02 Python
python字符串的拼接方法总结
2019/11/18 Python
Pycharm IDE的安装和使用教程详解
2020/04/30 Python
我的applet原先好好的, 一放到web server就会有问题,为什么?
2016/05/10 面试题
Java的类与C++的类有什么不同
2014/01/18 面试题
成功的酒店创业计划书
2013/12/27 职场文书
护士辞职信范文
2014/01/19 职场文书
业绩考核岗位职责
2014/02/01 职场文书
秋冬农业生产标语
2014/10/09 职场文书
工作违纪检讨书范文
2015/01/26 职场文书
如何撰写创业策划书
2019/06/27 职场文书
如何用JavaScript检测当前浏览器是无头浏览器
2021/04/27 Javascript