2010-07-02 5 views
0

ASP.NET AJAX를 사용하는 ASP.NET 웹 응용 프로그램이 있습니다. 이 응용 프로그램은 제가 오류가있어 장소가 MicrosoftAjax.js 나는이 문제를 해결하려면 어떻게'length'오류가 null이거나 객체가 아닙니다.

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; 
} 

에 임의의 자바 스크립트 오류

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 

에 따라 제공?

답변

1

배열 인수는 아마도 함수가 널 (null) 인 "배열"로 호출되고

1

null이어야합니다. 이 줄 앞에 "array"가 null인지 확인하지 않습니다.

var length = array.length; 

[편집 : 두 번째 생각에 잘못 생각합니다. 제 생각에 "길이"가 아닌 "배열"자체에 대한 오류가 발생한다고 생각합니다.] "배열"은 실제로 배열이 아니므로 전달 된 모든 문자에 길이 속성이 없습니다. "정렬".

0

빠른 응답을 보내 주셔서 감사합니다. 여기에 더 많은 정보를 제공하겠습니다. MicrosoftAjax.js는 Microsoft ASP.NET AJAX 프레임 워크의 일부입니다. 배열 매개 변수에 문제가 있음을 알고 있었지만 AJAX 프로세스는 모두 ASP.NET AJAX 프레임 워크에서 생성되었습니다. 나는 문제점을 찾기 위해 실패 지점을 내 코드로 추적하는 방법을 모릅니다. 다른 한편으로, 문제는 매우 혼란 스럽습니다.

+0

답변을 게시하는 대신 추가 정보를 제공 할 수 있도록 질문을 편집 할 수 있습니다. – ChrisF

+0

죄송합니다, Stack Overflow에 익숙하지 않습니다. 다른 토론 그룹에서는 보통 다른 사람들의 게시물 바로 뒤에 뭔가를 게시하여 더 많은 정보를 제공하므로 새로운 정보를 알 수 있습니다. 원래 질문을 수정 한 경우 추가 정보라는 사실을 알리는 방법은 무엇입니까? 감사. – hehongyu2000

관련 문제