单击按钮时强制下载pdf

时间:2013-03-02 09:43:53

标签: javascript jquery backbone.js pdf-generation

我有一个backbonejs视图,其中包含一个说“下载pdf”的按钮。我也有可以找到pdf的网址。我希望当用户点击按钮时,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
    }
  });
}

2 个答案:

答案 0 :(得分:1)

请勿使用按钮,使用链接并将href属性设置为PDF文件的网址。浏览器将为您处理文件下载,以表彰用户的浏览器首选项。

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

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

编辑:AFAIK,您无法从javascript中可靠地初始化文件下载。你可以做的是用你的pdf网址打开一个新的窗口/标签:

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

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

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

让用户点击链接启动文件下载。

答案 1 :(得分:0)

使用“下载”标签

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

但无法在IE Explorer中唤醒;)