2013-04-11 33 views
10

的目的:如何打开.PDF上一个新的选项卡

我有一个新的标签上打印PDF一些任务完成后,正常。

步骤:我想执行的是应该去的服务器,以PDF和打开一个新的选项卡的方法,我用这些努力,但不工作:

控制器:出口

public ActionResult PrintPdf() 
    { 
     Response.AppendHeader("Content-Disposition", "inline; filename= " + MyClassPdfWriter.GetFileName); 
     return File(MyClassPdfWriter.GetMemoryStream, "application/pdf"); 
    } 

查看

function TasksSucced(){ 
     $.get('@Url.Action("PrintPdf", "Export", "new {target = _blank}")'); 
} 
+0

也许它的工作原理,但..这是一个有点脏..杰杰奥我要去看看,如果有更好的选择,如果不是我会用肯定的您选择:d实际上它 – user1520494 2013-04-11 09:38:35

+0

是是一个肮脏的黑客。 :D让我也知道如果你找到更好的。 :) – Raman 2013-04-11 09:46:23

+0

拉曼泰!!我找到了! :) – user1520494 2013-04-11 10:07:02

回答

11

解决了!这对我的作品

window.open('/Export/PrintPdf'); 
+2

弹出窗口阻止程序阻止PDF下载在铬,有没有办法circventvent它? (告诉用户允许弹出此页面是超出他们的理解:/ – cpacheco 2016-04-25 15:17:48

1
$("a[target!='_blank'][href$='.pdf']").attr("target", "_blank"); 
1

您可以采用如下方案

jQuery('<form target="_blank" action="' + URL + '" method="get"></form>').appendTo('body').submit().remove(); 

其中URL是PDF格式的网址...

0

如果有人有类似的问题,没有上述解决方案在Google Chrome中为我工作(他们在Firefox中工作)

此代码适用于所有主要b rowsers:

var a = document.createElement('A'); 
var filePath = 'https://pathtopdf.com/file.pdf'; 
a.href = filePath; 
a.download = filePath.substr(filePath.lastIndexOf('/') + 1); 
document.body.appendChild(a); 
a.click(); 
document.body.removeChild(a); 
相关问题