2010-03-05 27 views
0
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的响应通过浏览器上的新窗口/标签。用pdf附件打开一个新窗口回复

无论如何要做到这一点?

感谢, lupind

回答

0

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

0

摘自this link

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

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

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

  • 使用JavaScript的window.open在URL中传递 通过数据的 页面生成PDF,让 它输出到浏览器的窗口 (但它可能是太 URL中的大量数据)
  • 创建一个特殊的表单,以保存来自您网页的数据并提交 表格。这种特殊形式 将目标属性设置为 (target =“_ blank”),以在新的 窗口/选项卡中打开它。

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