본문 바로가기
Develop/Javascript

사파리에서 window.open() 실행되지 않는 이유

by bellsilver7 2016. 3. 28.
728x90

<select name="brands" id="brandsite" onchange="brandsite()">

<option value="">Site Select</option>

<option value="site1 url">Site1 Name</option>

<option value="site2 url">Site2 Name</option>

.

.

.

</select>


<script>

function brandsite(){

var url = $('#brandsite option:selected').val();

window.open(url,'_blank');

}

</script>



위 소스와 같이 select에서 onchange로 스트립트 함수를 실행시킨 뒤 사이트 주소 값을 가져와 window.open() 함수로 새창을 띄우기 위해 시도했다.


모바일에서 사이트 이동을 시도해보았지만 실행되지 않아 확인해본 결과 onchange는 실행이 되고 있었고 window.open() 함수가 막혀 있었다.


웹이나 안드로이드 폰에서는 잘 실행되었지만 아이폰에서는 실행되지 않았다. 아이폰의 경우도 짚어보자면 safari에서 실행이 되지 않고 있었다.


원인은 아이폰에서 safari 설정이 "팝업차단"이 기본 설정이 되어 있었던 것이다.


보안때문에 그런지 차단을 풀어도 팝업허용 알림창이 떠서 location.href를 사용해 그냥 부모창에서 페이지 이동을 하는 것으로 결정했다.

728x90

댓글