这是一个普遍的问题,但我相信我不是唯一一个遇到Internet Explorer(gross)和jQuery 1.8问题的人。
(免责声明:我知道这是一个非常广泛的问题,但我希望为自己和未来的Stack用户编译一些资源以用于故障排除,因为到目前为止我还没有找到任何帮助。)
问题:
jQuery中内置的某些事件/函数在Chrome、FireFox、Safari、甚至InternetExplorer7&8但不在Internet Explorer 9中?
我很清楚,我可以在我的页面上模仿"IE8"来绕过这个问题,但这并不能解决这个问题。
以下是我迄今为止所做/检查的内容:
- 确保所有
document.ready
代码都包含在关闭CCD_ 2标签 - 所有
script
标签都具有type=text/javascript
- 删除了我的JS中的任何"尾随逗号"-IE不喜欢它们
- 所有文档标签(即
<!doctype html>
、<head>
等)都是正确的
我还能做些什么来确保/帮助Javascript和jQuery在Internet Explorer 9中运行得至少和在IE8中一样好吗(不需要在兼容模式下运行或模拟IE8)?
更新
如果我在页面的<body>
中放置我的<script>
标签以包括jQuery和我的自定义JS,那么它的大部分在IE9中都能正确执行。
如果其他人也有同样的问题,经过进一步的研究,我找到了解决方案:在jQuery 1.8中,核心有一个bug。
12282:1.8.0回归-IE上过早触发文档就绪9/10.
我升级到1.8.1,在IE 7、8和9(以及所有"真实"浏览器)中,一切似乎都能正常工作。