2014年12月21日   码农之路   2,239 次浏览

在高版本的IE浏览器中使用jquery时有时候就会出现”Array”未定义,”jQuery”未定义,”$”未定义等等这类错误,但是在chrome,firefox,ie6,ie7等其他浏览器上都是可以正常运行。

为什么?这是因为IE高版本的浏览器在兼容性上做了较严格的控制导致的,特别是当一个页面上嵌套了多层iframe/frame的时候(本人就是这种情况)。

20151221115839

 

在网上查了判断资料得来的解决方法,设置meta属性,但是没效果:

 <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8"/>

 

后来无意间修改代码发现这个问题没了:

$("#main_iframe").attr('src', '/user/view/index.html');

之前这个src是直接写在iframe属性中的,改成通过jquery来设置就好了。

 

猜想原因:当有iframe嵌套时,父页面与子页面同时打开,这时对jquery的初始化就会冲突,改完后子页面再打开时就不会再初始化jquery了(jquery在初始化时有个对象是否已经存在的判断)。

赞 赏
申明:除非注明,本站文章均为原创,转载请以链接形式标明本文地址。 如有问题,请于一周内与本站联系,本站将在第一时间对相关内容进行处理。
本文地址: http://www.yyjjssnn.cn/articles/699.html

>>> Hello World <<<

这篇内容是否帮助到你了呢?

如果你有任何疑问或有建议留给其他朋友,都可以给我留言。

:wink: :twisted: :surprised: :smile: :smile9: :smile8: :smile7: :smile6: :smile5: :smile56: :smile55: :smile54: :smile53: :smile52: :smile51: :smile50: :smile4: :smile49: :smile48: :smile47: :smile46: :smile45: :smile44: :smile43: :smile42: :smile41: :smile40: :smile3: :smile39: :smile38: :smile37: :smile36: :smile35: :smile34: :smile33: :smile32: :smile31: :smile30: :smile2: :smile29: :smile28: :smile27: :smile26: :smile25: :smile24: :smile23: :smile22: :smile21: :smile20: :smile1: :smile19: :smile18: :smile17: :smile16: :smile15: :smile14: :smile13: :smile12: :smile11: :smile10: :smile0: :sad: :rolleyes1: :redface: :razz: :question: :neutral: :mrgreen: :mad: :lol: :idea: :exclaim: :evil: :eek: :cry: :cool: :confused: :biggrin: :arrow:

友情链接: 程序员刘杨 刘杨
Copyright 2003~2018 保留所有权利 | 网站地图
备案号:湘ICP备14001005号-2

湘公网安备 43011102001322号