JQuery/Javascript - Firefox在简单任务上崩溃,没有控制台错误

JQuery/Javascript - Firefox crashes on simple task, no console errors

本文关键字:崩溃 错误 控制台 简单任务 Javascript Firefox JQuery      更新时间:2023-09-26

Firefox在执行这个简单的函数时会崩溃,而Chrome, Safari和IE在执行这个函数时没有任何问题:

jQuery(document).ready(function($) {
    if($('.fside_img').length>0) {
        gundeToggling(0,2000);
    }
});
function gundeToggling(prev,speed) {
    // 1. Choose a victim
    var victim = Math.floor(Math.random()*7); // number between 1 and 6
    // 2. Check if allowed or back to 1
    var alpha = $('#dn-a-'+victim);
    var beta = $('#dn-b-'+victim);
    var ctf_val = parseInt($('#ct_fones').val()); // Menge der sichtbaren prims
    var cts_val = parseInt($('#ct_sones').val()); // Menge der sichtbaren secs
    if(alpha.is(':visible') && ctf_val>2 && victim!=prev) {
        alpha.fadeOut(speed);
        beta.fadeIn(speed,function() {
            $('#ct_fones').val(ctf_val-1);
            $('#ct_sones').val(cts_val+1);
            gundeToggling(victim,speed);
        });
    } else if(beta.is(':visible') && cts_val>2 && victim!=prev) {
        beta.fadeOut(speed);
        alpha.fadeIn(speed,function() {
            $('#ct_fones').val(ctf_val+1);
            $('#ct_sones').val(cts_val-1);
            gundeToggling(victim,speed);
        });
    } else {
        gundeToggling(prev,speed);
    }
}

这是一个以随机顺序淡出/淡出6个图像的函数。我也试着递归地找到下一张图片,但火狐仍然崩溃了。有什么问题吗?

创意:尝试在另一个浏览器(chrome,即opera, safari)。尝试做大量的调试(添加注释&提醒很多地方,看看哪里可以运行,哪里不是整个js)关闭其他选项卡

想法# 2:我也有这个问题与旋转木马,修复很简单。禁用firefox中的所有扩展和插件。(好吧,我只在firefox中有这个问题,所有其他浏览器仍然工作良好…)

您好,感谢您的帮助,setTimeout的提示对调试非常有用,因为我可以避免崩溃。

但真正的问题是:

:visible选择器在Firefox中的工作方式与其他浏览器不同。因此,Firefox中的jQuery认为,可见内容块(缺失的图像)是不可见的,这导致了无尽的循环,因为脚本允许更多的图像是不可见的。解决方法:对于缺少的图像,Alt-Text:-P