alert 사용 시 브라우저별 script처리 및 event가 다른 현상

window의 내장함수인 alert()을 사용 시 브라우저별로 script 처리 및 event가 다른 현상

문법

window.alert([message]) | alert([message]);
//message에 경고 대화상자 창에 표시할 텍스트를 입력합니다.

현상

  • 현상 확인의 경우 하단의 iframe 또는 샘플링크에서 확인 가능합니다 (샘플)
  • mousedown event에서 alert()을 실행 시 브라우저 별 event 발생이 다르며 script 처리 방식에 차이가 존재합니다.

    • IE11, Edge와 같이 OS, 브라우저 버전에 따라 차이가 존재합니다.
  • 브라우저별 확인 결과 크게 3가지로 분류가 가능합니다.

    1. event 미발생 : mouseup event가 발생 X
    2. chrome, IE11(win7)
    3. event 발생 : alert 실행 중 mouseup event가 발생
    4. IE11(win10), Edge(18)
    5. Edge(18)의 경우 mouseup event가 발생하나 alert, confirm를 실행 시 해당 동작이 수행되지 않습니다.
    6. event block 후 발생 : alert 창이 닫힌 후 event 발생
    7. FireFox

해결방안

  1. 실행 시점 변경

    • alert 발생 시 창이 닫혔는지 알 수 있는 방안이 없으며, 브라우저 별 script처리 및 event 발생 차이가 존재
    • 실행 시점을 mouseup, click event으로 변경하여 호출
© 2021 AnGwangHo, Built with Gatsby