3

我有一个backbonejs 视图,其中包含一个“下载pdf”按钮。我也有可以找到 pdf 的 url。我希望当用户单击按钮时,会下载 pdf 文件。是否可以?

编辑:我在backbone.js 中的视图代码

savendownload: function () {
  this.$("#saveanddownload").button('loading');

  var that = this;
  var formData = this.fetchData();
  if (formData) window.invoices.create({
    buyer: formData.buyer,
    items: formData.items,
    company: formData.company,
    action: "savendownload"
  }, {
    wait: true,
    success: function (model) {
      var data = model.toJSON();

      var filename = data.filename;
      //download code here
    }
  });
}
4

2 回答 2

2

不要使用按钮,使用链接并将href属性设置为 PDF 文件的 URL。浏览器将为您处理文件下载,尊重用户的浏览器偏好。

<a href="your/file.pdf" />

如果您需要链接看起来像一个按钮,您可以使用 CSS 设置它的样式。参见例如这个SO thread

编辑: AFAIK,您无法可靠地初始化从 javascript 下载的文件。您可以做的是使用您的 pdf URL 打开一个新窗口/选项卡:

window.open("http://domain.com/document.pdf",'_blank');

但是用户的浏览器可以阻止新窗口的创建。您可能只想生成一个下载链接:

$('<a>Click here to download PDF</a>').attr('href', filename).appendTo(that.$el);

并让用户单击链接以启动文件下载。

于 2013-03-02T09:55:15.597 回答
0

使用“下载”标签

<a href="assets/pdfs/yourdocument.pdf" download>Download PDF</a>

但不能在 IE Explorer 上工作;)

于 2020-10-25T20:37:13.273 回答