0

元のウィンドウの「現在ダウンロード中」ページにリダイレクトしながら、クリックすると新しいウィンドウでファイルのダウンロードを開始するダウンロードボタンを作成しようとしています。「現在ダウンロード中」ページからダウンロード ファイルにリダイレクトするのではなく、この方法で動作させる必要がある理由はさまざまです。

私のコードは IE、Chrome、および Firefox では正常に動作しますが、Safari では setup.exe を起動しません。

jQuery(window).load(function() {
    var link = $j('#slider_download_link a')[0];
    link.href = 'setup.exe'; // This link is dependent on the browser and OS. For example, on Mac I'd link to the Mac App Store
    link.target = "_blank";
    link.onclick = RedirectToDownloadingPage;
});

function RedirectToDownloadingPage()
{
    location.href="/downloading";
    return true;
}

助言がありますか?ありがとう!

4

1 に答える 1

1

クリック ハンドラーが起動されるとすぐに、ページ ナビゲーションが開始され、Safari は、リンクの起動を含め、現在のページでの他の処理を明らかに停止します。したがって、次のようにリンクがアクティブになるまでクリック ハンドラーを遅らせますsetTimeout()

function RedirectToDownloadingPage()
{
    setTimeout(function()
    {
        location.href="/downloading";
    }, 100);
    return true;
}

私の実験では、タイムアウト値は0で十分でしたが、念のため、それを少し大きくすることをお勧めします。のようなもの100で十分なはずです。

于 2012-08-22T00:19:06.470 に答える