window.open无法在显示pdf的jsp页面中工作

时间:2013-12-10 04:37:46

标签: javascript jsp pdf

这是我的代码的一部分

<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>

 <script>
function myFunction()
{
alert("Page is loaded");
}
</script>

</head>

<body onload="myFunction();">  
<% 
  class HeaderAndFooter extends PdfPageEventHelper {
   private String name = "";
   protected Phrase footer;
   protected Phrase header;
   Font headerFont = new Font(FontFamily.COURIER, 18, Font.BOLD | Font.ITALIC | Font.UNDERLINE);
   Font footerFont = new Font(FontFamily.HELVETICA, 11, Font.BOLD);
//some code

response.reset();
     response.setContentType("application/pdf");
     response.setHeader("Content-Disposition", "inline; filename=data.pdf");
     //code that uses itext to display in pdf.

我的问题是一旦页面被加载,即pdf显示在嵌入式pdf查看器中警报未来。这是因为行response.setContentType("application/pdf");

我甚至尝试过document.ready但是没有用。请帮助。

1 个答案:

答案 0 :(得分:0)

浏览器使用第三方插件显示pdf。我不认为您可以这样做,因为您的回复设置为application / pdf。

我建议使用javascript在新窗口中打开pdf。

要检查您的iframe是否已加载,请尝试此操作,在父窗口加载时调用checkIframe函数,我的意思是说window.onload

<script>
var timer =null;
function checkIframe() {

     iframe = document.getElementById('myIframeId');
     var iframeDoc = iframe.contentDocument || iframe.contentWindow.document;

     if (  iframeDoc.readyState  == 'complete' ) {

        iframe.contentWindow.onload = function(){
        clearInterval(timer);
        afterLoading();  
        };
     } 
timer = window.setInterval(checkIframe, 100);
}

function afterLoading(){
    alert("I am loaded");
}
</script>