1

setTimeout 内で、新しく開いたウィンドウの場所を設定しています。ポップアップ ブロッカーを回避するために、一時的なローカル URL でウィンドウが開かれ、場所がターゲット URL に変更されます。これは、Safari を含むすべてのデスクトップ ブラウザーで正常に機能します。

ただし、Mobile Safari では、ユーザーが元のウィンドウにフォーカスを戻すまで、新しいウィンドウの場所は更新されません。つまり、一時ページはそのまま残ります。

JavaScript/jQuery の関連部分は次のようになります。

var self = $(this);
if (self.is("a")) {
    var clickEventHandler = function(event) {
        event.preventDefault();
        if (self.attr("target")) {
            var newWindow = window.open('loading.htm',self.attr("target"));
            var externalURL=self.attr("href");
            setTimeout( function() { newWindow.location=externalURL; }, 100 );
        }
    }
    $(this).bind("click", eventHandler);
}
4

0 に答える 0