addEventListener를 사용하여 onBeforeUnload 취소
-
21-12-2019 - |
문제
어떻게 하면 예방할 수 있을지 알아보려고 해요 onBeforeUnload
href가 없는 링크를 사용할 때 IE9+에서 이벤트가 트리거되지 않습니다.
나는 깡깡이 여기(실제 시나리오의 단순화된 테스트)는 제가 달성하려는 작업을 거의 설명합니다.언제든지 onBeforeUnload
트리거되면(링크를 클릭하면) 페이지 배경이 파란색으로 변합니다.사용할 때 attachEvent
나는 쉽게 할 수 있다 return false
그런 일이 일어나지 않도록.하지만 링크의 클릭 이벤트를 추가하면 addEventListener
, return 문은 아무런 차이가 없습니다.어느 정도 링크 4가 링크 2처럼 동작하길 바랍니다.
예, 링크를 버튼으로 변경하는 것이 해결책이 될 것입니다.onBeforeUnload 기능을 변경하는 것(해당 코드를 클릭 기능의 일부로 포함하는 것과 같은)은 또 다른 방법입니다.그러나 슬프게도 나는 그러한 코드 조각을 제어할 수 없습니다.
그래서.트리거에서 링크의 클릭 이벤트를 중지할 수 있는 방법이 있습니까? onBeforeUnload
설정할 때 addEventListener
?아니면 MS가 다음에서 마이그레이션할 때 이 가능성을 제거했습니까? attachEvent
에게 addEventListener
, 사용자가 페이지에서 다른 곳으로 이동하는 것을 방지하는 것은 일반적으로 나쁜 생각이기 때문입니까?
해결책
addEventListener를 사용하면 리스너 함수에 매개변수를 추가할 수 있습니다.
매개변수에는 실행되는 이벤트가 포함됩니다(이를 중지할 수 있음).
사용 event.preventDefault()
매개변수가 이벤트라고 가정합니다.
이것 좀 봐 jsFiddle 예로서