Javascript 无法下载chrome浏览器中显示的base64编码pdf
我正在内置的chrome查看器中显示base64编码的文件。无论是jpg还是PDF,我都无法通过按钮或右键单击下载。但是,所有其他功能(如旋转和打印)都有效。。显示的选项卡标题只是带有微调器的“加载”。我可以在firefox中下载它Javascript 无法下载chrome浏览器中显示的base64编码pdf,javascript,google-chrome,pdf,Javascript,Google Chrome,Pdf,我正在内置的chrome查看器中显示base64编码的文件。无论是jpg还是PDF,我都无法通过按钮或右键单击下载。但是,所有其他功能(如旋转和打印)都有效。。显示的选项卡标题只是带有微调器的“加载”。我可以在firefox中下载它 let fileDisplayUrl = '<iframe src="' + 'data:' + mimeType + ';base64,' + base64Contents + '"frameborder="0" style="border:0; top:0
let fileDisplayUrl = '<iframe src="' + 'data:' + mimeType + ';base64,' + base64Contents + '"frameborder="0" style="border:0; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%;"></iframe>';
let win = window.open();
win.document.write(fileDisplayUrl);
让fileDisplayUrl='';
let win=window.open();
win.document.write(fileDisplayUrl);
我想这是因为我展示它的方式,但我还没有在其他方面运气好
编辑:尝试将这些作为对象和img标签,并在这些标签上出现相同的问题 您的实际问题更像是无法从新窗口下载通过
数据:
-URI提供的内容。旁注:旋转器可以通过close()
-ing文档停止,但不会影响不工作的“另存为”
我发现了两个变通方法:
提供头衔
让pdf="2)2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 P0CmFpbGVyCjw8Ci9Sb290IDMgMCBSCj4+CiUlRU9G”;
函数doFrame(){
设frm=document.createElement(“iframe”);
frm.style=“边框颜色:黑色”;
frm.src=“数据:应用程序/pdf;base64,”+pdf;
文件.正文.附件(frm);
}
函数doWindow(){
让wnd=open(“,Date.now());
让doc=wnd.document.open();
文件写入(“
”);
文件写入(“对象
”;
文件写入(“嵌入
”;
文件写入(“IFrame
”;
doc.close();
}
窗口(选项卡)
iframe
这不是一个可运行的代码段,因为这里的安全沙箱(在StackOverflow上)阻止了这两种尝试。“window(tab)”变体以
object
、embed
和iframe
的形式打开pdf,我可以确认在Chrome中右键单击+“另存为”对它们没有任何作用。下载按钮可以工作(至少在Chrome中也可以).当pdf显示在iframe上时,我们是否可以关闭下载?这不是答案。请创建新问题。
<!DOCTYPE html>
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script>
let pdf="JVBERi0xLjIgCjkgMCBvYmoKPDwKPj4Kc3RyZWFtCkJULyA5IFRmKFRlc3QpJyBFVAplbmRzdHJlYW0KZW5kb2JqCjQgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL1BhcmVudCA1IDAgUgovQ29udGVudHMgOSAwIFIKPj4KZW5kb2JqCjUgMCBvYmoKPDwKL0tpZHMgWzQgMCBSIF0KL0NvdW50IDEKL1R5cGUgL1BhZ2VzCi9NZWRpYUJveCBbIDAgMCA5OSA5IF0KPj4KZW5kb2JqCjMgMCBvYmoKPDwKL1BhZ2VzIDUgMCBSCi9UeXBlIC9DYXRhbG9nCj4+CmVuZG9iagp0cmFpbGVyCjw8Ci9Sb290IDMgMCBSCj4+CiUlRU9G";
function doFrame(){
let frm=document.createElement("iframe");
frm.style="border-color:black";
frm.src="data:application/pdf;base64,"+pdf;
document.body.appendChild(frm);
}
function doWindow(){
let wnd=open("",Date.now());
let doc=wnd.document.open();
doc.write("<a href='data:application/pdf;base64,"+pdf+"' download='small.pdf'>Download</a><br>");
doc.write("Object<br><object type='application/pdf' data='data:application/pdf;base64,"+pdf+"'></object><br>");
doc.write("Embed<br><embed type='application/pdf' src='data:application/pdf;base64,"+pdf+"'><br>");
doc.write("IFrame<br><iframe src='data:application/pdf;base64,"+pdf+"'/>");
doc.close();
}
</script>
</head>
<body>
<button onclick="doWindow()">window(tab)</button><br>
<button onclick="doFrame()">iframe</button><br>
</body>
</html>