2013-05-29 69 views
1

我打电话下面的jquery方法将表格的详细信息导出为PDF。 PDF文件是Java类中创建,而它被调用,并在路径可用 C:\ Apache的Tomcat的7.0.40 \的webapps \ TestProj \ PDFfiles 哪里有这个脚本IM是在 loacted的JSP C:\ apache-tomcat-7.0.40 \ webapps \ TestProj \ WEB-INF \ jsp 但是window.open不起作用。我可以得到“PDF生成成功---”的提示信息Window.open不工作jquery

任何想法?请帮忙。只有用户的操作,如click

function openPDF() { 
     $.post("generatePDF", {action : "get"}, function(data) { 
      if (data.returnStatus == "SUCCESS") {    
       alert("PDF generation success ---"); 
       var win = window.open('', 'fullscreen=no'); 
       win.location.href = '../../PDFfiles/TestPdf.pdf'; 
       win.focus(); 
       //window.open('../../PDFfiles/TestPdf.pdf', 'fullscreen=no'); 

      } 
     }, 'json');  
    } 

我曾尝试下面片断也,但没有用..

window.open('../../PDFfiles/ShopsListPdf.pdf', 'fullscreen=no'); 
+2

你有一个弹出式窗口拦截器来阻止打开新窗口吗? – Blazemonger

+0

当您使用URL“/TestProj/PDFfiles/ShopsListPdf.pdf”时会发生什么? “WEB-INF”目录是特殊的,你不能像这样用“..”导航。 – Pointy

+0

可能重复的[Javascript window.open不工作](http://stackoverflow.com/questions/11821009/javascript-window-open-not-working) – Quentin

回答

2

window.open作品,如果有,它会通过浏览器被堵塞后的延迟。延迟就像你在ajax call中所做的那样。因此,尝试后click

注尽快执行window.open有时当Ajax调用来得太快了,由于缓存或东西时,window.open可以工作,它发生在我身上很多时间,特别是当我试图当我发布一个问题时,在这里做一个Facebook登录链接fb login popup block

+0

当我调用generatePDF时,该类实际上会生成来自会话数据的PDF并将PDF放在C: \ apache-tomcat-7.0.40 \ webapps \ TestProj \ PDFfiles所以这就像我需要从文件夹中打开一个pdf文件。 – JPN

+0

然后你可以制作一个按钮来生成一个pdf文件,当完成后改变按钮文本来下载它,然后第二次点击就可以使用window.open –

+0

或者你可以打开一个带有页面的窗口其中有一个代码可以在页面加载事件和显示时生成pdf –