jquery 3.0 url.indexOf 오류


210

로 업데이트되면 jQuery에서 다음과 같은 오류가 발생합니다 v3.0.0.

jquery.js:9612 Uncaught TypeError: url.indexOf is not a function

왜 그런지 알아?



4
오류를 발생시키는 jQuery의 새로운 버전입니다. 이전 버전은 괜찮습니다.
Kamrul

메신저 지금도 실행 중 : 0
Feek

답을 선언하십시오. 나는 우리가 분명하다고 생각 하나
믈라덴 Janjetovic

답변:


546

다음load 과 같이 함수 를 호출하는 모든 코드를 업데이트 하십시오 .

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

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

jquery.js : 9612 Uncaught TypeError : url.indexOf는 함수가 아닙니다

이 오류 메시지는 jQuery.fn.load기능 에서 발생 합니다.

내 응용 프로그램에서 동일한 문제가 발생했습니다. 일부 파고 후, 나는이 문을 발견 jQuery를 블로그 ,

jQuery 1.8 이후로 더 이상 사용되지 않는 .load, .unload 및 .error 는 더 이상 없습니다 . .on ()을 사용하여 리스너를 등록하십시오.

jQuery 객체가 load위와 같이 함수를 호출하는 방식을 변경하기 만하면 됩니다. 그리고 모든 것이 예상대로 작동합니다.


40
이 문서의 api.jquery.com/load 문서에서 더 이상 사용되지 않는 경고가 없다는 것은 미친 일 입니다 .
James McMahon

3
내가 찾은 이것을 할 수 아우렐 리아에 zurbs 재단 부트 스트랩 때 내가 가진 된 정확한 문제
samuel.molinski

5
/ - : 일종의 아이러니의 사실 난 아직이 일을하고있는 유일한 장소는 자신을 깼다 오류 처리 코드 있다는
Simon_Weaver

1
이에 대한 완벽한 답변 감사합니다
KCarnaille

나는 그것을 document.ready기능에 사용했고 그것은 매력처럼 작동하고 있습니다.
호기심

29

더 나은 접근 방식은 다음과 같은 polyfill 일 수 있습니다

jQuery.fn.load = function(callback){ $(window).on("load", callback) };

이를 통해 레거시 코드를 그대로 유지할 수 있습니다. 웹팩을 사용하는 경우 반드시 스크립트 로더를 사용하십시오.


정말 고마워. 여전히 오류가 발생했습니다. James는 .trigger를 사용하도록 제안했습니다. jQuery.fn.load = 함수 (콜백) {$ (window) .trigger ( "load", 콜백); };
rgfx

타사 JS로 인한 놀라운 솔루션입니다. 또 다른 장점은 다운 그레이드가 필요하지 않아 취약점을 일으킬 수 있다는 것입니다 (3 이하의 모든 jquery 버전에서)!
Mateusz

이 답변은 왕입니다
Ntiyiso

16

Jquery 3.0에는 충돌로 인해 특정 방법을 제거하는 몇 가지 주요 변경 사항이 있습니다. .load () 이벤트 제거와 같은 이러한 변경 중 하나로 인해 오류가 발생했을 가능성이 큽니다.

jQuery Core 3.0 업그레이드 가이드 에서 자세히 알아보십시오

이 문제를 해결하려면 Jquery 3.0과 호환되도록 코드를 다시 작성하거나 더 이상 사용되지 않거나 제거 된 API 및 동작을 복원하는 JQuery Migrate 플러그인 을 사용할 수 있습니다 .


4

최신 버전의 JQuery로 업데이트 한 후 동일한 오류가 발생했습니다. 따라서 이전 답변에서 언급 한대로 작업중 인 jquery 파일을 업데이트 했으므로 .on("load")대신.load() .

이 수정은 매우 안정적이지 않으며 때로는 저에게 효과적이지 않습니다. 따라서이 문제를 해결하려면 다음에서 코드를 업데이트 해야합니다.

    .load();

    .trigger("load");

https://github.com/stevenwanderski/bxslider-4/pull/1024 에서이 수정 프로그램을 받았습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.