2

この質問は に関するものではありませんjQuery.fn.ready()

ファイルのダウンロード用に新しいウィンドウを開き、window.open()ダウンロードの開始後にウィンドウを閉じたいと考えています。ほとんどのブラウザーはファイルのダウンロードを続行するので、ダウンロードが完了するまで待つ必要はありません。

問題は、ウィンドウを で閉じるとjQuery.fn.ready()、ファイルのダウンロードがすぐにスキップされることです。

これが私が試して失敗したものです:

var w = window.open(...);

$(w).load(); // failed
$(w.document).load(); // failed
$(w.document).contents().load(); // failed
$(w.document).contents().find('body').load(); // failed

編集:

簡単なデモのために jsFiddle を追加: http://jsfiddle.net/vicary/Yjkt8/1

編集2:

Jonny Sooter の回答により、動作中のバージョンhttp://jsfiddle.net/vicary/Yjkt8/4で jsFiddle が更新されました。

4

2 に答える 2

1
$(function() {
    $('button').click(function() {
        var w = window.open(),
            d = w.document,
            s = d.createElement("script");

        s.type = "text/javascript";
        s.innerHTML = ";(function(){window.close();})();";

        d.getElementsByTagName("head")[0].appendChild(s);
    });
});

アップデート:

クロムの場合、次を試すことができます:

window.open('', '_self', ''); //bug fix
window.close();

または試してください:

window.self.close();
于 2013-02-26T17:24:06.820 に答える
1

ダウンロード時間がわかっている場合は、これを試すことができます。

jQuery(window).load(function () {
    alert('page is loaded');

    setTimeout(function () {
        alert('page is loaded and 1 minute has passed');   
    }, 60000);

});
于 2013-02-26T10:00:37.293 に答える