2013-10-22 8 views
4

내가 asp.net 응용 프로그램에서 마스터 페이지자바 스크립트 런타임 오류 : 속성 또는 메서드를 지원하지 않습니다 개체

<script type="text/javascript"> 
      if (window.location.pathname.contains('Page1.aspx')) { 
       var js = document.createElement("script"); 

       js.type = "text/javascript"; 
       js.src = 'http://code.jquery.com/jquery-1.8.3.js'; 


      } 
      if (window.location.pathname.contains('Page2.aspx')) { 
       var js = document.createElement("script"); 

       js.type = "text/javascript"; 
       js.src = 'http://code.jquery.com/jquery-1.9.1.js'; 


      }  

     </script> 

에 아래의 코드를 작성했습니다 '포함', 나는 3 페이지 PAGE1, 페이지 2, PAGE3이있는 동일한 마스터 페이지에 상속됩니다. 페이지 3에 액세스하려고하면 오류가 표시됩니다. "JavaScript 런타임 오류 : 객체가 '포함하는 속성 또는 메서드'를 지원하지 않습니다."

+0

왜 두 페이지에서 서로 다른 버전의 jQuery를 사용하고 있습니까? –

+0

마스터 페이지에서 jquery 충돌로 인해. – Billy

답변

7

자신이 정의하지 않은 경우 문자열이 인 경우에는 과 같은 것이 없습니다. 실제적으로 똑같은 includes()을 사용하십시오.

예 : 어쨌든

console.log('abcdefg'.indexOf('def') !== -1); // true 
console.log('abcdefg'.indexOf('ghi') !== -1); // false 

, jQuery를 서로 다른 두 가지 버전을 사용하는 끔찍한 생각이다 :

console.log('abcdefg'.includes('def')); // true 
console.log('abcdefg'.includes('ghi')); // false 

당신이 (인터넷 익스플로러 등) 이전 버전의 브라우저를 지원해야하는 경우, indexOf() 사용 두 페이지에 - 가능하면 피하십시오.


1 :은 기술적으로이 100 % 사실이 아니다 : 한 지점에서이 있던 contains() 기능 내장,하지만이 includes()for compatibility reasons로 이름이 바뀌 었습니다.

관련 문제