JavaScript でファイルダウンロードさせる

JavaScript で動的に作成した CSV ファイルをダウンロードさせる為に window.location = ‘url’; などでリダイレクトをかけていたのですが、これを実行した時点でページの読み込みが終了してしまいます。

iframe を利用したリダイレクトがあったので利用してみました。
http://stackoverflow.com/questions/3749231/download-file-using-javascript-jquery

var downloadURL = function downloadURL(url) {
    var hiddenIFrameID = 'hiddenDownloader',
        iframe = document.getElementById(hiddenIFrameID);
    if (iframe === null) {
        iframe = document.createElement('iframe');
        iframe.id = hiddenIFrameID;
        iframe.style.display = 'none';
        document.body.appendChild(iframe);
    }
    iframe.src = url;
};

行っていることは、’hiddenDownload’ という ID の要素があれば取得、なければ iframe を作成してその iframe の src にファイルのURL を指定しているようです。

CSV のファイルURLが https://blog.gfb.io/list.csv だとすると、以下のようなコードになります。

downloadURL('https://blog.gfb.io/list.csv');

この関数を実行すると、ダウンロードが開始されてページの読み込みも問題なく継続されました。

ただ、そのまま更新ボタンを押すとまたダウンロードが開始されるのをどうしようかと思っています。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です