사파리 비동기 함수에서 window.open 우회하기

2023. 7. 2. 23:18·프론트엔드/Javascript

문제

Safari에서는 비동기 함수안에서 window.open 호출 시 팝업이 차단될 수 있다.

약간의 trick을 이용해 팝업을 열 수 있다.

예시

팝업 X

// 비동기함수를 통해 URL을 받아와서 팝업을 열때 차단된다.
const url = await fetchUrl();
window.open(url, 'popupName', "width=500, height=600")

팝업 X

// 빈 url은 비동기 호출 전에 만들어야한다.
const url = await fetchUrl();
const popup = window.open(undefined, 'popupName', "width=500, height=600")
popup.location.href = url

팝업 O

// 빈 url 생성 후 url 변경. 
const popup = window.open(undefined, 'popupName', "width=500, height=600")
const url = await fetchUrl();
popup.location.href = url

 

 

'프론트엔드 > Javascript' 카테고리의 다른 글

사파리에서 hover시 filter 속성 적용안되는 이슈  (0) 2023.09.07
잊을만하면 찾아왔던 오디오 재생버그  (0) 2023.08.21
화살표 함수는 언제, 왜 써야할까?  (0) 2020.10.30
JavaScript- require vs import (CommonJs와 ES6) 차이점  (0) 2020.10.30
실행 컨텍스트 정리  (0) 2020.10.23
'프론트엔드/Javascript' 카테고리의 다른 글
  • 사파리에서 hover시 filter 속성 적용안되는 이슈
  • 잊을만하면 찾아왔던 오디오 재생버그
  • 화살표 함수는 언제, 왜 써야할까?
  • JavaScript- require vs import (CommonJs와 ES6) 차이점
꿀표
꿀표
양봉업자
  • 꿀표
    꿀로그
    꿀표
  • 전체
    오늘
    어제
    • 분류 전체보기 (82)
      • 인디해커 (0)
      • AI (0)
      • 프론트엔드 (34)
        • Javascript (17)
        • React (9)
        • Git (2)
        • Web Env (4)
        • Typescript (1)
        • 웹접근성 (1)
        • 상태관리 (0)
      • CS (8)
        • Network (3)
        • 알고리즘 (5)
      • 글쓰기 (3)
        • 생각 (2)
        • 서적 (1)
      • JAVA (37)
        • JAVA 기초 (22)
        • JSP (15)
  • 블로그 메뉴

    • 방명록
  • 인기 글

  • 태그

    js
    react
    cross browsing
    javascript
    구명보트
    network
    알고리즘
    greedy
    프로그래머스
    그리디
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
꿀표
사파리 비동기 함수에서 window.open 우회하기
상단으로

티스토리툴바