私は次のコードを持っています:
var pdfWindow = window.open();
pdfWindow.document.write('<iframe src="data:application/pdf;base64,BASE64STRING" style="width: 100%; height: 100%;" frameborder="0" scrolling="no"></iframe>');
これはGoogleChromeでは正しく機能していますが、IE11では空白のページが表示されています。
IEで動作させる方法はありますか、それとも別の方法がありますか?
ありがとう!
私の知る限り、InternetExplorerはIFRAMEのソースとしてのDATAURIの使用をサポートしていません。
別の回避策として、IEブラウザーで、最初にPDFファイルをダウンロードしてから、IEブラウザーを使用してPDFファイルを表示することをお勧めします。
次のコードを参照できます。
function myfunction() {
var data = "BASE64STRING";
var fileName = "test.pdf";
//For IE using atob convert base64 encoded data to byte array
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
var byteCharacters = window.atob(data);
var byteNumbers = new Array(byteCharacters.length);
for (var i = 0; i < byteCharacters.length; i++) {
byteNumbers[i] = byteCharacters.charCodeAt(i);
}
var byteArray = new Uint8Array(byteNumbers);
var blob = new Blob([byteArray], { type: 'application/pdf' });
window.navigator.msSaveOrOpenBlob(blob, fileName);
} else {
// Directly use base 64 encoded data for rest browsers (not IE)
var base64EncodedPDF = data;
var pdfWindow = window.open();
pdfWindow.document.write('<iframe src="data:application/pdf;base64,' + base64EncodedPDF+'" style="width: 100%; height: 100%;" frameborder="0" scrolling="no"></iframe>');
}
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加