링크를 여는 코드가 있습니다. 링크를 구성 할 수 있으므로 일부 기본적인 오류 처리를하고 있습니다. 특히 window.open()
호출을 try/catch로 래핑하는 중입니다. URL이 유효하지 않은 경우 기본 제공 API가 예외를 throw하기 때문입니다. 문제는 사파리에서 캐치가 맞지 않는다는 것입니다.Safari에서 window.open() 예외를 catch 할 수 없습니다.
Safari API를 살펴 보았지만 좋은 정보를 찾을 수 없습니다.
아래 예제는 IE와 Chrome에서는 잘 작동하지만 Safari에서는 정상적으로 작동하지 않습니다.
$(function() {
$('button').on("click", function() {
try {
var begin = "http://<";
var opentag = "script>";
var stuff = "function(){alert('unsafe');}";
var all = begin + opentag + stuff;
window.open(all);
} catch (e) {
alert("errr");
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>
Click ME
</button>
각각의 윈도우가 다른 윈도우와 비동기 적으로 실행 자신의 자바 스크립트 스레드에서 작동합니다. – Barmar
다른 창에서 실행되는 코드의 문제는 아닙니다. 즉, 열어야 할 URL이 유효하지 않을 수 있으며 예외 인 경우 예외를 catch하려고합니다. – RodgerTheGreat