IE에서 팝업을 띄울 경우 referer(리퍼럴)가 안 넘어온다.

less than 1 minute read

  • 상태
  • IE 11
  • A사이트에서 B사이트로 window.open()으로 팝업창을 오픈.
  • 하지만, A->B로시 리퍼럴이 없이 팝업창이 열림.

  • 문제
  • IE에서는 window.open을 사용해서 창을 열경우 리퍼럴을 안 넘긴다.
  • 하지만 크롬등에서는 리퍼럴이 넘어감.

  • 해결
  • var w = window.open(“blank.htm”,”popup”,”~~~~”)
    var f = document.createElement(‘form’);
    f.innerHTML = “<input ~~~~>”;
    f.action = “B사이트URL”;
    f.target = “popup”;
    document.body.appendChild(f); // 이걸 안 해줄 경우 IE에서 submit이 안됨(크롬에서는 없어도 동작)
    f.submit();
    f.parentNode.removeChild(f);
  • 해설
  • 블랭크 htm로 팝업을 엶(about:blank 보다는 .htm 파일이 좋음. https 등에서의 문제 때문에)
  • 동적으로 <form>을 만듬.
    action을 목적지 URL로설정 하지만 크롬등에서 문제가 있으므로 input에 쿼리 스트링의 값들을 넣어줌
  • 그리고 <form>을 body에 붙임 (안붙이면 IE에서 submit 동작 안함)
    submit 함
    <form>을 삭제함.
  • 끝.

🔗original-link

Updated: