リンクを開くコードがあります。リンクは設定可能で、基本的なエラー処理をしています。具体的には、window.open()
呼び出しをtry/catchでラップしています。これは、URLが無効な場合に組み込みのAPIが例外をスローするためです。問題は、Safariではキャッチがヒットしないということです。Safariでwindow.open()例外をキャッチできません
私は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>
各ウィンドウが他のウィンドウと非同期的に実行独自のJavascriptのスレッドで動作します。 – Barmar
これは別のウィンドウで実行されるコードの問題ではありません。これは、開かれるURLが無効である可能性があり、その場合は例外をキャッチしたいと考えています。 – RodgerTheGreat