はじめに
SPAアプリ上でIE11ブラウザを使ってPDFファイルを参照する場合に、PDFファイルをダウンロードせずにそのまま開いて参照したいとの要望をクライアントからいただいたため、ソースコードを修正した。
環境
Angularを使用して作成されたSPAアプリ。利用ブラウザはIE11
- Angular@6.1.2
- typescript@2.8.4
- Internet Explorer11
msSaveBlobからmsSaveOrOpenBlobに変更
修正内容だが、ファイルをローカルに保存する時に呼び出しているAPIをwindow.navigator.msSaveBlob
からwindow.navigator.msSaveOrOpenBlob
変更して、ポップアップに保存ボタンだけでなくファイルを開くボタンも表示されるようにした。
こうすることによってPDFファイルを保存してから閲覧するのではなくて、ファイルを保存せずに閲覧することもできるようにした。
// 修正前のコード window.navigator.msSaveBlob(blob, fileName); // 修正後のコード window.navigator.msSaveOrOpenBlob(blob, fileName);
下記のように、msSaveBlob
ではなくmsSaveOrOpenBlob
を使用することでポップアップにファイルを開く
ボタンを表示することができる。
参考サイト
File API で作成した blob をダウンロードする | Hebikuzure's Tech Memo