[javascript] event.returnValue는 더 이상 사용되지 않습니다. 대신 표준 event.preventDefault ()를 사용하십시오

나는이 스크립트를 가지고있다 :

<script>
$(document).ready(function () {
    $("#changeResumeStatus").click(function () {
        $.get("{% url 'main:changeResumeStatus' %}", function (data) {
            if (data['message'] == 'hidden') {
                $("#resumeStatus").text("скрыто");
            } else {
                $("#resumeStatus").text("опубликовано");
            }
        }, "json");
    });
});
</script>

Chrome 콘솔에 다음 오류가 표시됩니다.

event.returnValue는 더 이상 사용되지 않습니다. 대신 표준 event.preventDefault ()를 사용하십시오.

jQuery v1.10.2를 사용 #changeResumeStatus하고 <span>있습니다.

내 스크립트에 어떤 문제가 있습니까?



답변

이것은 경고 일뿐입니다. 코드는 여전히 작동하지만 메소드가 사용되지 않아 향후에는 작동하지 않을 수 있습니다. Chromium 관련 소스해당 패치를 참조하십시오 .

이것은 이미 jQuery 1.11에서 인식되고 수정되었습니다 ( herehere 참조 ).


답변

다른 사람의 참고를 위해 방금 이것을 받았으며 AngularJS 때문이라는 것을 알았습니다 . 이전 버전과의 호환성을위한 것입니다.

if (!event.preventDefault) {
    event.preventDefault = function() {
        event.returnValue = false; //ie
    };
}


답변

부트 스트랩 을 사용하는 경우 :

현재 버전의 Bootstrap (3.0.2) (jQuery 1.10.2 및 Chrome 포함) 도이 경고를 생성하는 것으로 보입니다.

(BTW 트위터에서도 마찬가지입니다.)

최신 정보

현재 버전의 부트 스트랩 (3.1.0)이 더 이상이 경고를 생성하지 않는 것 같습니다.


답변

그것은 스크립트가 아닌 jQuery API 문제입니다. 걱정할 것이 많지 않습니다.


답변

이것은 대부분의 JavaScript 프레임 워크 (jQuery, Angular, YUI, Bootstrap …)가 IE8에서 IE6까지 가장 오래된 인터넷 익스플로러를 역으로 지원한다는 사실과 관련된 경고입니다.

언젠가는 이전 버전과의 호환성 지원이 중단되고 ( IE9가 다루기 때문에 IE8 / 7 / 6의 경우 )이 경고 (및 기타 IEish 버그)가 더 이상 표시되지 않습니다.

그것은 시간의 문제입니다 (현재 IE8은 10 %가 전 세계 점유율을 가지고 있으며 , 1 %에 도달하면 DEAD입니다 ) 한편 경고를 무시하고 선을 유지하십시오 🙂


답변

최신 버전을 사용하면이 문제가 해결된다는 것을 알았습니다 :
http://code.jquery.com/jquery-git.js


답변

많은 웹 사이트에서이 경고를 보았습니다. 또한 YUI 3 라이브러리에도 동일한 경고가 표시됩니다. 라이브러리에서 생성 된 경고입니다 (jQuery 또는 YUI인지 여부).