JavaScript导致“此页面上的脚本可能正忙,或者可能已停止响应”。 Firefox中的错误

时间:2009-07-21 10:31:57

标签: javascript firefox

我用javascript编写了一个页面,它有超过1000行代码,所以页面太重了。 当我在firefox上运行页面时,它告诉我:

A script on this page may be busy, or it may have stopped responding. You can stop the script now, or you can continue to see if the script will complete.

Script: http://localhost:5070/resources/ir.pnusn.branch.ui.pages.BranchMap/scripts/MapAddress.js:151

我在MyAddress.js:151:

function fillAddress(number)
{
150:    var filedNum=0;
151:    while(document.getElementById("choice4")!=null)
        document.getElementById("choice4").click();
    nextId=1;
    for(i=0;;i++)
    {
        var cookieChoiceName=number+"-"+filedNum+"-0";
        var cookieChoiceValue=getCookie(cookieChoiceName);
        if(cookieChoiceValue==null)
        {
            //alert(document.getElementById("choice4"));
            break;
        }
        var cookieFieldName=number+"-"+filedNum+"-1";
        var cookieFieldValue=getCookie(cookieFieldName);
        if(cookieFieldValue==null)
        {
            alert(document.getElementById("choice4"));
            break;
        }
        if(cookieChoiceValue!= "-1" && cookieChoiceValue!="-2" && document.getElementById("choice"+cookieChoiceValue)!=null)
        {
            document.getElementById("choice"+cookieChoiceValue).click();
        }
        var value=utf8_decode(unescape(cookieFieldValue));
        var finalval=replacePluse(value);
        // var Resvalue=value.substr(1,value.length-1);
        document.getElementById("txt"+(filedNum-1)).value=finalval;
        filedNum++;
    }
}

当我在警告窗口中按继续时,代码正常工作。 但是当我在firefox配置文件中增加dom.max_script_run_time时它不会改变 然后,当我再按一次继续它的工作原理。 有什么问题?如果您想了解有关代码的更多信息,请告诉我在这里为您提供。

3 个答案:

答案 0 :(得分:2)

你的while可能是一个无限循环。只要您具有标识为#choise4的元素,您使用的条件将始终为true。由于你没有在循环中删除这个元素,所以它永远不会完成。

答案 1 :(得分:2)

这条线看起来像是对我的无限循环:

while(document.getElementById("choice4")!=null)
    document.getElementById("choice4").click();

答案 2 :(得分:1)

从你的代码中看来,'choice4'的onclick函数应该删除元素但是没有。

我会检查onclick中的错误。