0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

window.open()を使用して複数ファイルを順番通りにダウンロードする方法

Posted at

経緯

実務で実装を行なっているときに、こんなバグを発見しました。
window.open()を使用して別ウィンドウを開き、複数ファイルをダウンロードする処理があるが、ファイル名001~ファイル名010までが順番通りにダウンロードされないという現象です。

試したこと

最初は遅延処理を入れて、ダウンロード処理とダウンロード処理の間に間隔を入れてみましたが解決には至りませんでした。

解決策

結論から言うと、 $(window).on('unload', function() {}); を使用することで解決しました。
unloadイベントはページが閉じられる時などに処理を行うことができます。
具体的には、以下のようなソースコードで今回の問題を解決しました。

qiita.js
function downloadFile() {
    var wdl = window.open(URL);
    $(wdl).on('unload', function () {
        // 再起処理
        if (ダウンロード数 条件) {
            downloadFile()
        }
    });
}

警告
検証ブラウザはChromeなため、他ブラウザでは今回のバグが解決可能か不明です。
また上記の理由により、unloadは非推奨となっているのでお気をつけください!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?