로 업데이트되면 jQuery에서 다음과 같은 오류가 발생합니다 v3.0.0
.
jquery.js:9612 Uncaught TypeError: url.indexOf is not a function
왜 그런지 알아?
로 업데이트되면 jQuery에서 다음과 같은 오류가 발생합니다 v3.0.0
.
jquery.js:9612 Uncaught TypeError: url.indexOf is not a function
왜 그런지 알아?
답변:
다음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
위와 같이 함수를 호출하는 방식을 변경하기 만하면 됩니다. 그리고 모든 것이 예상대로 작동합니다.
document.ready
기능에 사용했고 그것은 매력처럼 작동하고 있습니다.
더 나은 접근 방식은 다음과 같은 polyfill 일 수 있습니다
jQuery.fn.load = function(callback){ $(window).on("load", callback) };
이를 통해 레거시 코드를 그대로 유지할 수 있습니다. 웹팩을 사용하는 경우 반드시 스크립트 로더를 사용하십시오.
Jquery 3.0에는 충돌로 인해 특정 방법을 제거하는 몇 가지 주요 변경 사항이 있습니다. .load () 이벤트 제거와 같은 이러한 변경 중 하나로 인해 오류가 발생했을 가능성이 큽니다.
jQuery Core 3.0 업그레이드 가이드 에서 자세히 알아보십시오
이 문제를 해결하려면 Jquery 3.0과 호환되도록 코드를 다시 작성하거나 더 이상 사용되지 않거나 제거 된 API 및 동작을 복원하는 JQuery Migrate 플러그인 을 사용할 수 있습니다 .
최신 버전의 JQuery로 업데이트 한 후 동일한 오류가 발생했습니다. 따라서 이전 답변에서 언급 한대로 작업중 인 jquery 파일을 업데이트 했으므로 .on("load")
대신.load()
.
이 수정은 매우 안정적이지 않으며 때로는 저에게 효과적이지 않습니다. 따라서이 문제를 해결하려면 다음에서 코드를 업데이트 해야합니다.
.load();
에
.trigger("load");
https://github.com/stevenwanderski/bxslider-4/pull/1024 에서이 수정 프로그램을 받았습니다.