如何在iframe中设置base64 pdf的文件名?

Tec*_*ger 6 html iframe jquery

我在base64中有一个PDF报告,我想显示嵌入在HTML页面中的文件.要做到这一点,我使用iFrame并工作,但问题是我无法设置PDF的名称,以便下载时它将以指定的名称保存.

我可以设置文件名吗?如果是,我该怎么办?

这是我的代码:

var iFrameBlock = $("<iframe>").attr({
      "src": base64file_encode,
      "width": "100%",
      "height": "100%",
      "frameborder": "0"
});

$("#previewPDF").html(iFrameBlock);
Run Code Online (Sandbox Code Playgroud)
结果: 预览PDF

当我尝试下载文件时,要保存的名称是"download.pdf" 保存对话框

我尝试了不同的方法,但也不工作:

  1. 添加属性download ="filename.pdf"

       
       var iFrameBlock = $("<iframe>").attr({
          "src": base64file_encode,
          "width": "100%",
          "height": "100%",
          "frameborder": "0",
          "download": "filename.pdf"
       });
       
       
    Run Code Online (Sandbox Code Playgroud)

  2. 我尝试更改iframe中的值,但我找到了正确的属性,Chrome拒绝了该操作.

       
       var iframe = $("iframe")[0];
       var iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
       //here I suppose is the label of the filename
       $(iframeDocument).find("viewer-pdf-toolbar");
       
       
    Run Code Online (Sandbox Code Playgroud)

但是,我想防止使用任何其他库.

感谢您的时间

Krz*_*ski -2

iframe元素无法做到这一点,但作为替代方案,您可以添加锚标记。

var iFrameBlock = $("<iframe>").attr({
    "id": "iframe",
    "src": base64file_encode,
    "width": "100%",
    "height": "100%",
    "frameborder": "0"
});
var aTag = $("<a>Dwonload</a>").attr({
    "href": base64file_encode,
    "download": "yourName.pdf"
});
$("#previewPDF").html(iFrameBlock);
aTag.insertAfter($("#iframe"));
Run Code Online (Sandbox Code Playgroud)