【发布时间】:2014-05-12 21:36:45
【问题描述】:
我在 IE8 中收到错误“对象不支持此属性或方法”,并且我的 Flexslider 没有运行脚本。我查看了所有类似的问题并仔细检查了他们的解决方案,例如检查尾随逗号、从 flexslider.js 调用中删除“defer”、正确的 HTML 和 DOM 调用,并确保 jQuery 只被调用一次在页面上。
在此之前调用了一些其他脚本,因此我将其移至它们之前,但无济于事。然后尝试完全删除其他脚本,以便只调用 jQuery 和 Flexslider,这意味着它不是单独脚本之间的冲突。
这里是代码。
<script src="/js/jquery.flexslider.js"></script>
<script type="text/javascript">
$( document ).ready(function() {
$('.flexslider').flexslider();
});
</script>
导致错误的行是$('.flexslider').flexslider();
也许我已经看这个太久了,我错过了一些明显的东西,但这个解决方案正在逃避我。
您现在可以在此处查看开发站点(链接已删除,问题已修复)。
更新:我从 flexslider.js 调用中删除了“延迟”,现在它在所有浏览器中都出错了,在调用它时重新添加 defer 解决了现代浏览器的问题,但可能是它不能的原因在 IE8 中加载。
【问题讨论】:
-
在 Flexslider 的网站上,他们使用 jquery 1.6.2 作为示例,尝试将本地 1.8.0 引用替换为
https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js。我的猜测是你的脚本引用是让 IE 关闭的原因。我还看到两个对jqery.tools的引用。尝试隔离该滑块以向自己保证外部引用不是问题。 -
感谢@ElliotM!我不小心调用了 jquery.tools 的两个版本(一个是硬编码的,另一个是由我们的 CMS 填充的,所以我没有注意到加倍)。删除对 jquery.tools 的第二次调用后,flexslider 运行良好。
标签: javascript jquery internet-explorer-8 flexslider