由于getWidthOrHeight函数,jQuery无响应脚本

时间:2013-02-05 14:08:34

标签: javascript jquery

过去几周,我和我的用户收到以下消息。仅在Firefox中发生。

  

警告:无响应的脚本

     

此页面上的脚本可能正忙,或者可能已停止响应。您可以立即停止>脚本,在调试器中打开脚本,或者让脚本继续运行。

     

脚本:http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js:6803

我尝试用1.7.2替换jQuery 1.7.1,但它没有帮助。仍然得到消息。 该行引用了一个名为getWidthOrHeight的函数。在调试时我无法找到代码的任何问题。

function getWidthOrHeight( elem, name, extra ) {

// Start with offset property
var val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
    i = name === "width" ? 1 : 0,
    len = 4;

if ( val > 0 ) {
    if ( extra !== "border" ) {
        for ( ; i < len; i += 2 ) {


            if ( !extra ) {    //This is the problematic line causing the unresponsive error. 


                val -= parseFloat( jQuery.css( elem, "padding" + cssExpand[ i ] ) ) || 0;
            }
            if ( extra === "margin" ) {
                val += parseFloat( jQuery.css( elem, extra + cssExpand[ i ] ) ) || 0;
            } else {
                val -= parseFloat( jQuery.css( elem, "border" + cssExpand[ i ] + "Width" ) ) || 0;
            }
        }
    }

    return val + "px";
}

此外,这个问题开始时没有对调用jQuery的代码进行任何更改。

当我尝试使用jQuery 1.7.1时,我在第6778行遇到了错误,这与上面提到的相同。

错误通常会在重新启动后加载时首次运行浏览器时出现。

这可能是由于Firefox出现问题造成的吗?我该如何解决这个问题? 谢谢!

Mozilla发现这篇文章,但它没有解决它。 http://support.mozilla.org/en-US/kb/warning-unresponsive-script

1 个答案:

答案 0 :(得分:-1)

我们在其中一个网站上也遇到过类似的问题。您可以使用w3.org上的脚本验证程序来查看如何修复这些错误......对我帮助很大。