Javascript在Firefox 3.6中导致页面崩溃

3
我正在页面上使用jCarousel Lite jQuery插件,但它似乎在Firefox 3.6中引起了严重问题。在该浏览器中,页面会短暂地加载,然后所有内容都会消失,除了我正在使用插件的一个<li>元素。
相关页面在这里。应用轮播的代码如下:
<script type="text/javascript">

    jQuery(window).load(function() {
        jQuery(".loopnetcarousel").jCarouselLite({
            btnNext: ".next",
            btnPrev: ".prev"
        });
    });

</script>

起初我使用的是(document).ready,但在看到一些人在Firefox 3.6中出现问题后,我将其替换为(window).load,但似乎并没有改变什么。

更多信息:如果在页面内容全部替换之前停止页面加载,那么一切都正常,包括旋转木马。此外,我尝试用另一个旋转木马脚本替换它,但是仍然出现同样的问题。


3
Firebug错误控制台可以告诉您什么? - Michael Berkowski
页面似乎一直在加载中,在控制台中(但在信息选项卡中,而不是错误选项卡中)显示“重新加载以激活窗口控制台”。 - Travis Northcutt
如果Firebug提示“重新加载”,则表示您在网站加载后打开并启用了Firebug,因此您只需按照其指示执行并使用已启用Firebug的页面重新加载即可。如果您无法找出问题,请尝试在http://jsfiddle.net/上创建一个最小的测试用例。 - Asbjørn Ulsberg
我已经重新载入了页面,但不幸的是,即使重新载入后仍然显示那个信息。 - Travis Northcutt
你是否在使用其他的jQuery js,包括jCarousel Lite jQuery插件? - Hardik Raval
我不完全确定你在问什么,但是有其他插件可以利用jQuery。 - Travis Northcutt
3个回答

3
看起来问题出在loopnet.com属性的加载方式上。loopnet.com脚本使用document.write来创建走马灯内容。如果你在Firebug的Net选项卡中查看,你会发现loopnet.com脚本都加载了两次。第一次是页面加载时,第二次是运行走马灯脚本时。在Firefox第二次运行时,document.write会清空整个页面。一个简单的解决方法是在设置走马灯代码之前删除脚本标签。示例jsFiddle: http://jsfiddle.net/fqFH7/7/
 $(function() {
    //remove the scripts so that they are not executed again by the carousel code
    jQuery(".loopnetcarousel script").remove();    

    jQuery(".loopnetcarousel").jCarouselLite({
        btnNext: ".next",
        btnPrev: ".prev"
    });
});

尝试在jsFiddle中注释掉remove()行,您会看到与您的网站相同的问题。

0

我已经将其从页面中删除,但在Firefox 3.6中仍存在错误。 - Travis Northcutt

0
在插件的网站上:
根据广泛的请求,jCarouselLite已更新以支持jquery 1.2.x版本。转到下载页面并下载1.0.1版本以享受jquery 1.2.x支持。由于Firefox 3在$(document).ready()函数方面存在一些问题,如果遇到任何问题,请尝试使用$(window).load()代替。希望未来的Firefox或jQuery版本能够解决这个问题。
摘自:http://www.gmarwaha.com/blog/2007/08/09/jcarousel-lite-a-jquery-plugin/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接