web-dev-qa-db-ja.com

Safari / iOSの「download」属性の代替

私はbase64で作成されたblobを持っています。このデータをPDFとしてダウンロードできるようにする必要があります。

私はこのスニペットを作成しました:

    var blob = new Blob([byte]);
    var link = document.createElement('a');

    link.href = window.URL.createObjectURL(blob);
    link.target = '_blank';
    var fileName = name + '.pdf';
    link.download = fileName;
    link.click();

IOSのSafariモバイル以外のすべてのブラウザーで動作します。

ファイルは実際にダウンロードされますが、その名前は「不明」であり、拡張子が失われるため、開くことができません。

問題は download属性 がこのブラウザとIEでサポートされていないことです。

IEには多くの回避策がありますが、safari/iOSには何も見つかりませんでした。

このブラウザーでbase64(XHRは関与しない)から取得したblobをダウンロードする方法を知っていますか?

ありがとうございました

19

Safariの「target」属性が「download」属性をオーバーライドしているようです。現在、私の知る限り、これを解決する方法はありません。したがって、数か月後にリリースされる次のSafariバージョン(13)を待つ必要があると思います。

0
Dat Le