2010-07-02 86 views
0

我有一個使用ASP.NET AJAX的ASP.NET Web應用程序。該應用程序給了我下面的隨機的JavaScript錯誤錯誤「長度」爲空或不是對象

Webpage error details 

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; WOW64; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MS-RTC LM 8; CIBA; .NET4.0C; .NET4.0E) 
Timestamp: Fri, 2 Jul 2010 17:19:22 UTC 


Message: 'length' is null or not an object 
Line: 5 
Char: 18997 
Code: 0 
URI: http://172.16.199.109/TWQAUDTUK_App/ScriptResource.axd?d=BssYA8UXb_xixM2kbWCVNiQB3yadiDxpyviVKlvm-OzfLO5PAqndPHn02Na1YNGeyuN9FBDbUO716zVqct-04yJjJTi77-kEQQ_jKSRCUY81&t=5dc69638 

我得到了錯誤的地方是在MicrosoftAjax.js

Array.indexOf = function Array$indexOf(array, item, start) { 
    /// <param name="array" type="Array" elementMayBeNull="true"></param> 
    /// <param name="item" optional="true" mayBeNull="true"></param> 
    /// <param name="start" optional="true" mayBeNull="true"></param> 
    /// <returns type="Number"></returns> 
    var e = Function._validateParams(arguments, [ 
     {name: "array", type: Array, elementMayBeNull: true}, 
     {name: "item", mayBeNull: true, optional: true}, 
     {name: "start", mayBeNull: true, optional: true} 
    ]); 
    if (e) throw e; 

    if (typeof(item) === "undefined") return -1; 
    var length = array.length; 
    if (length !== 0) { 
       start = start - 0; 
       if (isNaN(start)) { 
      start = 0; 
     } 
     else { 
            if (isFinite(start)) { 
           start = start - (start % 1); 
      } 
         if (start < 0) { 
       start = Math.max(0, length + start); 
      } 
     } 

       for (var i = start; i < length; i++) { 
      if ((typeof(array[i]) !== "undefined") && (array[i] === item)) { 
       return i; 
      } 
     } 
    } 
    return -1; 
} 

如何解決這個問題?

回答

1

你的數組參數必須爲空

1

也許函數被調用的時候「array」爲null。你不檢查在這一行之前「array」是否爲空:

var length = array.length; 

[編輯:關於第二個想法,我認爲這是錯誤的;我想你會得到一個關於「數組」的錯誤本身,而不是「長度」。]

也可能是因爲「數組」不是真正的數組,所以沒有任何「長度」 「陣列」。

0

感謝您的快速響應。讓我在這裏提供更多信息。 MicrosoftAjax.js是Microsoft ASP.NET AJAX框架的一部分。我知道數組參數有問題,但AJAX過程全部由ASP.NET AJAX框架生成。我不知道如何使用失敗點來追蹤我的代碼以找到問題。另一方面,問題非常隨意,我只有一段時間。

+0

您可以也確實應該編輯您的問題以提供此額外信息,而不是將其作爲答案發布。 – ChrisF 2010-07-02 18:42:29

+0

對不起,我對Stack Overflow不是很熟悉。在其他討論組中,我通常只是在其他人的帖子後發佈一些內容以提供更多信息,因此他們會知道這是一條新信息。如果我編輯我的原始問題,如何讓他們知道這是附加信息?謝謝。 – hehongyu2000 2010-07-02 19:05:56

相關問題