2013-05-29 67 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 –