event.layerX 및 event.layerY와 관련된 WebKit 문제
방금 최신 (카나리아) Chrome 빌드에서 더 이상 사용되지 않는 경고가 표시됩니다.
event.layerX 및 event.layerY는 WebKit에서 중단되어 더 이상 사용되지 않습니다. 머지 않아 엔진에서 제거 될 것입니다.
jQuery가 문제를 일으키는 것처럼 보입니다.
사용하고 있습니다 : jquery-1.6.1.min.js
.
최신 jQuery 버전으로 업그레이드하는 데 도움이되거나 아직 수정되지 않았거나 Chrome 버그이거나 다른 것입니다.
추신
일반적인 오류라고 생각하기 때문에 코드를 표시 할 수 없지만 jQuery 객체에 액세스하려고 할 때 또는 jQuery가 layerX / layerY에 액세스하려고 할 때 경고가 발생하는 것으로 의심됩니다 (잘 알고 있습니다) 오류 : P).
jQuery는 이러한 속성을 jQuery 객체에 복사합니다.
그래서...
무슨 일이야?
편집하다
jQuery 1.7이 출시되었으며이 문제가 해결되었습니다.
자세히보기 여기, 자신의 블로그에서 .
무슨 일이야!?
"jQuery는 아마도 이러한 속성을 jQuery 객체에 복사합니다." 당신은 정확히 맞으므로 이미 알고있는 것처럼 들립니다! :)
잘만되면 jQuery가 코드를 업데이트하여 그만 두지 만 동시에 WebKit은 이벤트에 대해 지원 중단 경고를 기록하는 것보다 더 잘 알고 있어야합니다 (적어도 제 생각에는). 하나의 mousemove 핸들러와 콘솔이 폭발합니다. :)
최근 jQuery 티켓은 다음과 같습니다. http://bugs.jquery.com/ticket/10531
업데이트 : jQuery 1.7로 업그레이드하면 이제 수정되었습니다.
jQuery를 업그레이드해도 문제가 해결되지 않으면 Jake가 답변 에서 언급 한대로 사용 된 확장 / 플러그인과 관련이있을 수 있습니다 .
http://jsperf.com/removing-event-props/2
임시 수정은 jQuery를 통해 이벤트 바인딩을 수행하기 전에이 코드를 실행하는 것입니다.
(function(){
// remove layerX and layerY
var all = $.event.props,
len = all.length,
res = [];
while (len--) {
var el = all[len];
if (el != 'layerX' && el != 'layerY') res.push(el);
}
$.event.props = res;
}());
최신 정보
이벤트 소품을 제거하는 가장 빠른 방법은 최신 성능 테스트 를 참조하십시오 .
이것에 대한 가장 짧은 해결책은 다음과 같습니다.
$.event.props = $.event.props.join('|').replace('layerX|layerY|', '').split('|');
이 메시지의 엄청난 양 (gmail을 사용하는 동안 80000 개를 얻었습니다) 은 실제로 Chrome의 버그입니다.
Chromium에 문제를 표시 해야합니다 .
Chrome 확장 프로그램으로 인해 발생할 수도 있으므로 jQuery 업데이트가 작동하지 않는지 확인하십시오.
다음과 같은 경우에 대비하여 $ .event.props의 원래 인스턴스 (배열 일 수도 있고 아닐 수도 있음)를 바꾸지 않고 또 다른 한 줄 수정이 있습니다.
$.each(["layerX","layerY"], function(i,v) { if((i=p.indexOf(v)) > -1) $.fn.splice.call($.event.props,i,1) })
이벤트를 호출 한 후 이것을 사용했습니다.
$.event.props.splice($.event.props.indexOf("layerY"),1);
$.event.props.splice($.event.props.indexOf("layerX"),1);
내 코드 에서이 패치를 만든 이후 경고 메시지가 없습니다.
다른 답변에 나열된 구성 문제뿐만 아니라이 오류는 사용자 코드의 간단한 오류로 인해 발생할 수 있습니다. jQuery ID 선택기에서 '#'을 잊어 버렸습니다.
나는 코드처럼 보인다
$('datenotset_2341').click(function(){
....etc....
});
( "datenotset"앞의 #을 생략 함)
(분명히) 작동하지 않을뿐만 아니라 Chrome 에서이 오류 메시지가 트리거되었습니다.
내 코드 에서이 문제가 발생했습니다. 내가 사용하고있는 디버깅 / 검사 도구의 일부로 이벤트 객체의 모든 속성을 반복하고있는 것으로 나타났습니다. 이 특정 인스턴스에서 jQuery의 $ .extend를 사용하여 나중에 검사를 위해 객체를 복제했지만 다양한 툴킷의 표준 반복 기술 중 하나라도 경고를 트리거했을 것으로 생각합니다.
여기서는 layerX 또는 layerY의 인스턴스에 대한 코드베이스를 검색하는 것에 대한 초기 생각이 도움이되지 않았기 때문에 여기에서 언급했습니다.
참고 URL : https://stackoverflow.com/questions/7825448/webkit-issues-with-event-layerx-and-event-layery
'Programing' 카테고리의 다른 글
물체가 날짜인지 확인하는 방법? (0) | 2020.02.12 |
---|---|
내용에 맞게 UITextView의 크기를 어떻게 조정합니까? (0) | 2020.02.12 |
InvariantCulture와 서수 문자열 비교의 차이점 (0) | 2020.02.12 |
Ruby 메소드에 느낌표가 사용되는 이유는 무엇입니까? (0) | 2020.02.12 |
유용한 Eclipse Java 코드 템플릿 찾기 (0) | 2020.02.12 |