[javascript] 새 기초 프로젝트를 열 때 “Uncaught TypeError : a.indexOf is a function”오류

을 사용하여 bash를 통해 새로운 Foundation 5 프로젝트를 만들었습니다 foundation new my-project. Chrome에서 index.html 파일을 열면에서 Uncaught TypeError: a.indexOf is not a function오류가 콘솔에 표시됩니다 jquery.min.js:4.

기초 사이트의 단계에 따라 프로젝트를 만들었지만이 오류를 제거 할 수없는 것 같습니다. Foundation 및 jQuery는 index.html 파일에 포함되어 올바르게 연결된 것처럼 보이고 연결된 app.js 파일에는 다음이 포함됩니다.$(document).foundation();

누구 든지이 오류의 원인을 알고 있습니까? 그리고 어떤 해결책이 될 수 있습니까?

콘솔 오류 메시지 스크린 샷



답변

이 오류는 같은 jQuery를 이벤트 – 별명에 의해 발생할 수 있습니다 .load(), .unload()또는 .error()모든이되어 사용되지 jQuery를 1.8부터 . 코드에서 이러한 별칭을 찾아 .on()대신 메소드로 대체하십시오. 예를 들어, 더 이상 사용되지 않는 다음 발췌문을 바꾸십시오.

$(window).load(function(){...});

다음과 같이 :

$(window).on('load', function(){ ...});


답변

이 오류는 종종 호환되지 않는 jQuery 버전으로 인해 발생합니다 . foundation 6저장소 와 동일한 오류가 발생했습니다 . 내 저장소는을 사용 jQuery 3했지만 Foundation에는 이전 버전이 필요합니다. 나는 그것을 바꿨다.

당신이 jQuery를 버전을 보면 의해 필요한 기초 5 개 의존성 은 상태 "jquery": "~2.1.0".

올바른 버전의 jQuery를로드하고 있는지 확인할 수 있습니까?

이게 도움이 되길 바란다.


답변

jQuery Migrate Plugin 아래에 추가하십시오

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="https://code.jquery.com/jquery-migrate-1.4.1.min.js"></script>


답변

나는이 문제에 직면했다. 내가 사용 된 jquery.poptrox.min.js이미지 터지는과 확대하고 나는 말했다 오류가 발생했습니다 :

“Uncaught TypeError : a.indexOf is a function” 오류입니다.

이것은 indexOf지원되지 않았기 때문에 3.3.1/jquery.min.js간단한 수정은 이전 버전으로 변경하는 것 2.1.0/jquery.min.js입니다.

이것은 나를 위해 그것을 고쳤다.


답변

가능한 이유 중 하나는 다음 과 같이 jQuery TWICE를로드 할 때입니다 .

<script src='..../jquery.js'></script>
....
....
....
....
....
<script src='......./jquery.js'></script>

따라서 소스 코드를 확인하고 중복 jQuery로드를 제거하십시오.


답변

사용 jQuery 3.3.1하고 있는데 동일한 오류가 발생했습니다. 제 경우 URL은 Objectvs 문자열이었습니다.

일어난 일은 내가 가져간 것입니다 URL = window.location-객체를 반환했습니다. 일단 그것을 변경 window.location.href하면 e.indexOf오류 없이 작동했습니다 .


답변

Jquery내 프로젝트에 필요한 올바른 버전을 설치 하여이 문제를 해결했습니다.npm