使用jQuery在Internet Explorer上的Javascript错误,但在Firefox上工作正常

一个简单的问题,我希望有人可以帮助我。

在Firefox上我们的jQuery滑块工作正常,但是在使用Internet Explorer查看时,会出现一些javascript错误。 该网站是http://foscam-uk.com/index.php

希望有一个可能的解决方案。

亲切的问候,谢谢!

错误:网页错误详细信息

用户代理:Mozilla / 4.0(兼容; MSIE 8.0; Windows NT 6.1; WOW64; Trident / 4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3)时间戳:2012年6月6日星期三22:36:43 UTC

消息:对象不支持此属性或方法行:5653字符:9代码:0 URI: http : //foscam-uk.com/js/prototype/prototype.js

消息:对象不支持此属性或方法行:5988字符:5代码:0 URI: http : //foscam-uk.com/js/prototype/prototype.js

消息:对象不支持此属性或方法行:2个字符:5代码:0 URI: http : //foscam-uk.com/skin/frontend/default/theme316/js/scripts.js

消息:对象不支持此属性或方法行:5736字符:7代码:0 URI: http : //foscam-uk.com/js/prototype/prototype.js

消息:对象不支持此属性或方法行:5988字符:5代码:0 URI: http : //foscam-uk.com/js/prototype/prototype.js

消息:对象不支持此属性或方法行:73字符:11代码:0 URI: http : //foscam-uk.com/index.php

IE对CSS​​和JS文件的数量有一些限制。 (约30)。 我没有计算,但似乎你有大量的JS和CSS文件引用。 如果你超过这个IE基本上停止下载脚本或CSS文件。 您可以使用Fiddler自行validation。

尝试用压缩工具将它们压缩成单个文件(例如: http : //developer.yahoo.com/yui/compressor/ )

prototype.js似乎在每个浏览器中抛出错误,但这些似乎对您的网站没有影响。

您的网站在IE7和IE10中运行良好。 在IE8中,您的jQuery版本会抛出错误,而不是滑块代码。 我会将1.7.1版本的jQuery升级到1.7.2(最新版本)。

所以看起来你正在加载几个第三方库。 你正在加载PrototypeJS,Scriptaculous,jQuery和jQuery插件*。 在我看来,你所拥有的不仅仅是一个插件组织问题的JavaScript问题。

现在,您似乎在一个地方使用了jQuery.noConflict()类的东西,但之后却没有。

我的建议是停用您在注入JavaScript的网站上使用的所有当前模块,然后一次重新启用它们。 每次重新启用插件时,请检查是否以及所有其他插件都正常工作。


*实际上,你加载的不仅仅是几个库。 你实际上加载了两个版本的jQuery ,加上Prototype。 这不是一个好习惯。 这是我能看到的,不包括正在插入的Magento生成的代码:

  • 原型1.7
  • 信用卡validationJavascript
  • 使用Prototype进行真正简单的现场validation
  • script.aculo.us builder.js
  • script.aculo.us effects.js
  • script.aculo.us controls.js
  • script.aculo.us slider.js
  • jQuery 1.4.2
  • jCarouselLite
  • jQuery 1.7.1
  • TMSlider:基于jQuery的图像滑块
  • jQuery Easing v1.3

您需要重新考虑如何处理这些效果。 这些库的作用有很多重叠,你最好还是看看是否有办法在你选择的模块中创造一些理智。

我的客户端脚本遇到了类似的问题。 IE10 F12开发工具脚本选项卡显示jQuery语法错误,即使该站点在IE8和IE9中工作。

我使用的其中一个库(Telerik Kendo UI)尚未兼容IE10。

为了强制IE10显示页面,我不得不将这个元标记添加到我的HEAD标记的顶部(头部的第一项):

   

然后页面再次起作用。