2016-07-12 3 views
0

나는 true사용하도록 설정하는 방법에 포인터 이벤트

이제 내 각 응용 프로그램 속성

window.navigator.pointerEnabled 

반환에 나는 jsfiddle 내부 포인터 이벤트을 포함 몇 가지 테스트를하고 싶은 때문에 것으로 나타났습니다 .net 나는이 사건이 거기 있지 않다는 것을주의했다. 이것은 아마도 pointerEnabled 속성이 undefined이라는 사실과 관련이 있습니다.

내 질문은이 속성이 어떻게 제어되는지, 어떻게 활성화 할 수 있습니까?

+0

마우스 포인터 이벤트입니까? –

+0

그것이 의미하는 바가 있다면 나는 마우스로 일하고있다. 다음과 같이 사용됩니다 :'element.addEventListener ('pointerdown', function (e) {....' –

답변

0

Pointer events은 하나의 인터페이스로 마우스 및 터치 이벤트를 처리하는 새로운 방법을 제공합니다. 현재 포인터 이벤트에 대한 지원은 여전히 ​​드문 드문합니다. 현재 IE11과 Edge는 IE10을 접두어로 직접 지원합니다. FF와 Chrome (> = 53)은 적극적으로 개발 중이며 깃발 뒤에 숨겨져 있습니다 (chrome://flags/#enable-pointer-events 참조). Safari에서 지금까지 공개 신호가 없습니다.

사용자를 위해 활성화 또는 비활성화 할 수있는 방법이 없습니다. 브라우저가 지원하거나 지원하지 않습니다.

window.navigator.pointerEnabled은 브라우저가 지원하는지 확인하는 대신 사용되지 않는 방법입니다. 권장되는 방법은 window.PointerEvent이 정의되어 있는지 확인하는 것입니다.

FF, CH, IE10 및 Safari를 지원하기 위해 polyfill이 있습니다.

0

Firefox에서 코드를 테스트하는 중이라면 포인터 이벤트를 사용하도록 브라우저를 구성해야합니다. 현재는 기본적으로 활성화되어 있지 않으므로 (2017.xi.15의 현재 최신 업그레이드는 Firefox입니다. Quantum 57.0.2 (64 비트), 여기서 게시 한 내용은 이후 버전에서 변경 될 수 있습니다!).

이렇게하려면 새 탭을 실행하고 검색 주소창에 "about : config"를 입력해야합니다.

을 dom.w3c_pointer_events.enabled true로이 부울 값의 상태를 변경 : 그런 다음 항목을 검색합니다.

이렇게하지 않으면 Firefox는 아직 포인터 이벤트 을 모두 처리하지 않습니다.. 이것은 미래에 변경 될 것입니다. 그러나 브라우저 간 호환성에 관심이 있다면 포인터 이벤트 처리가 지뢰밭이 될 수 있습니다. 예를 들어, 버전 63.0.3239.84 (공식 빌드) (64 비트)의 내 컴퓨터에서 실행되는 최신 버전의 Chrome은 브라우저에서 다이빙 및 재구성 할 필요없이 포인터 이벤트를 처리하지만 파이어 폭스는 나에게 위의 설정 문제가 발견되었고 다른 브라우저에서도 비슷한 문제가 발생할 수 있습니다.

Firefox를 사용하면 포인터 이벤트를 사용하도록 설정할 수 있지만 브라우저의 Android 용 Firefox 모바일 버전에서는 이 아닌이 아직 지원되지 않습니다. 따라서 동일한 브라우저가 플랫폼을 바꿀 때 다르게 행동하게 될 것입니다. 코딩 악몽에 추가하기 만하면됩니다.

Safari 나 Opera에 익숙하지 않지만 해당 브라우저 사용자는 입니다.은 포인터 이벤트를 사용할 때 유사한 지원 문제가 적용되는지 여부를 확인하는 것이 좋습니다!

결과적으로 브라우저가 기본적으로 포인터 이벤트를 사용하도록 설정하지 않은 경우 포인터 이벤트를 기본적으로 처리할지, 각도와 같은 프레임 워크를 통해 처리할지 여부는 중요하지 않습니다. 나는이 문제에 대해 몇 시간을 낭비했고, 다른 사람들에게 같은 좌절을 안겨주는 것이 좋은 생각이라고 생각했다. 물론

,이 최종 사용자가이을 모르고, 그들이 그렇게하도록 브라우저를 구성하지 않고 그것을 실행하려고하면 앱이 자신의 시스템에 실패의 문제가 해결되지 것입니다. 또는 브라우저가 포인터 이벤트 (예 : 위에서 언급 한 Android 용 Firefox 모바일)를 전혀 지원하지 않아 앱이 실패합니다. 최종 사용자는 하드웨어 & 브라우저 선택 사항과 상관없이 앱을 즉시 사용하기를 기대합니다. 단,이 경우를 제외하고는 현재 협상 할 수있는 장애물이 있습니다. 이 중 하나는 터치 이벤트 지원이 이고이 Firefox의 설정 플래그 뒤에 숨겨져 있기 때문에 포인터 이벤트가 지원되지 않는 경우 별도의 터치 이벤트가 발생해도 앱이 실패하지 않도록 보장 할 수 없습니다.

현재이 플랫폼과 관련하여 일관성을 유지하는 유일한 주요 브라우저는 Chrome입니다. 내가 포인터 이벤트를 사용하여 작성한 코드는 Chrome을 실행하면 데스크톱 컴퓨터와 태블릿에서 모두 작동하지만 코드를 실행하려고하면 Firefox가 나에게 두통을 나타낼 것임을 알고 있습니다. 태블릿.

기타이 위의 내용 외에 숨어있는 문제 (특히 새로운 CSS 포인터 이벤트 기능을 사용하는 경우 특히 그렇습니다)가 있지만 다른 곳에서는 제대로 예약되어 있습니다.

관련 문제