IE에서 팝업을 띄울 경우 referer(리퍼럴)가 안 넘어온다.
- 상태
- 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>을 삭제함. - 끝.