문제

어떻게 하면 예방할 수 있을지 알아보려고 해요 onBeforeUnload href가 없는 링크를 사용할 때 IE9+에서 이벤트가 트리거되지 않습니다.

나는 깡깡이 여기(실제 시나리오의 단순화된 테스트)는 제가 달성하려는 작업을 거의 설명합니다.언제든지 onBeforeUnload 트리거되면(링크를 클릭하면) 페이지 배경이 파란색으로 변합니다.사용할 때 attachEvent 나는 쉽게 할 수 있다 return false 그런 일이 일어나지 않도록.하지만 링크의 클릭 이벤트를 추가하면 addEventListener, return 문은 아무런 차이가 없습니다.어느 정도 링크 4가 링크 2처럼 동작하길 바랍니다.

예, 링크를 버튼으로 변경하는 것이 해결책이 될 것입니다.onBeforeUnload 기능을 변경하는 것(해당 코드를 클릭 기능의 일부로 포함하는 것과 같은)은 또 다른 방법입니다.그러나 슬프게도 나는 그러한 코드 조각을 제어할 수 없습니다.

그래서.트리거에서 링크의 클릭 이벤트를 중지할 수 있는 방법이 있습니까? onBeforeUnload 설정할 때 addEventListener?아니면 MS가 다음에서 마이그레이션할 때 이 가능성을 제거했습니까? attachEvent 에게 addEventListener, 사용자가 페이지에서 다른 곳으로 이동하는 것을 방지하는 것은 일반적으로 나쁜 생각이기 때문입니까?

도움이 되었습니까?

해결책

addEventListener를 사용하면 리스너 함수에 매개변수를 추가할 수 있습니다.
매개변수에는 실행되는 이벤트가 포함됩니다(이를 중지할 수 있음).
사용 event.preventDefault() 매개변수가 이벤트라고 가정합니다.

이것 좀 봐 jsFiddle 예로서

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top