我有一些打開鏈接的代碼。該鏈接是可配置的,因此我正在做一些基本的錯誤處理。具體來說,我使用try/catch來調用window.open()
調用,因爲如果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