본문 바로가기
쬬는 개발중

[javascript] window.open 팝업권한 사파리 문제해결

by Joooooooo 2022. 11. 29.
반응형

사파리에선 승인을하지 않으면 팝업창이 띄어지지 않는다

이런오류를 해결하기 위해 window.open을 null 값으로 먼저 띄어놓고 async await 비동기 호출을 통해 axios 호출 이후 미리 띄어진 window창에 url을 넣어주는 방식을 사용했다.

 

// 팝업선언
let popup = window.open(
    undefined,
    "payment_pop",
    "top=10,left=10,width=500,height=600,status=no,menubar=no,toolbar=no,resizable=no" //사이즈설정
  );


// 비동기로 url 호출
 const url = await axiosService
    .post("post_url", params)
    .then((res) => {
      let url = "";
      if (this.$isMobileDevice === true) {
        url = res.data.mobile_url;
      } else {
        url = res.data.online_url;
      }

      return url;
    })
    .catch((err) => {
      this.$store.commit("controller/setMsg", {
        message: err.response.data.message,
        type: "error",
      });
    });


// 팝업 url 선언
  popup.location.href = url;

 

반응형