使用pdf附件打开一个新窗口

时间:2010-03-05 10:18:16

标签: javascript jquery jqgrid

jqGrid('navButtonAdd',"#pager2",{caption:"Save All",title:"Save & Create Receipt",onClickButton:function () { 
      var s; 
      s = jQuery("#list2").jqGrid('getDataIDs'); 
      alert("selected"); 
      $.ajax({
        type: 'POST',
        url:'http://localhost:3000/order/receipt',
        data: {ids: s},
      });
    }});

使用上面的代码,我可以向服务器提交数据,在服务器端它将生成pdf作为附件,现在我想通过浏览器上的新窗口/选项卡查看响应的pdf。

无论如何要做到这一点?

感谢, lupind

3 个答案:

答案 0 :(得分:1)

如果您返回刚刚生成的PDF的URL,则可以使用该URL调用window.open。但是如果你想打开一个新窗口来显示PDF,我就不会使用Ajax调用。在这种情况下,我会:

  • 使用Javascript的window.open传递 通过URL中的数据来 生成PDF的页面然后让 它输出到浏览器的窗口 (但它可能是太多的数据了 网址)
  • 创建一个特殊表单来保存 来自您网页的数据并提交 那种形式。这种特殊形式会 设置目标属性 (target =“_ blank”)以新的方式打开它 窗口/标签。

对我来说,对一个结果使用两个HTTP调用(生成和查看PDF)是一种浪费。

答案 1 :(得分:0)

您可以使用window.open()打开包含指定网址的新窗口。但要小心,只有在必要时才这样做。

答案 2 :(得分:0)

摘自this link

iframevisibility:hidden一起使用,然后在成功回调的javascript中将iframe位置更改为可下载文件。

 var iFrame = document.getElementById('hiddenIFrame');
 iFrame.src = theurlThatWillProduceTheFile;