ie8兼容-修改jquery源码
做项目的时候遇到一个奇怪的ie8兼容问题,在谷歌或ie11都完全是正常的
参考网站 elem.ownerDocument.defaultView breaks when elem == (iframe) document
背景
- jquery 版本:jQuery v1.11.2
- 报错浏览器 ie8 运行于win7虚拟机中
报错内容
修改前的页面,在网页左下角看到报错,双击打开
F12,点到
Script
重刷页面,报错内容如下
解决办法
冥思苦想了许久
- 打开项目的这个 jquery.mini.js(我是使用idea)
CMD+F
搜索 ownerDocument.defaultView原始代码:
加入如下代码:
var ownerDocument = b.ownerDocument; if ( !ownerDocument) { return null; } var defaultView = ownerDocument.defaultView; if ( !defaultView ) { return null; }
修改后的代码:
修改后的界面:
思路
之前一直以为是哪里的js代码写得有问题,
其实看报错,发现这种 空 异常,检查哪里出问题,直接抛出