2012-10-09 99 views
1

好吧,出于某种原因,我的div打印出它应该在Firefox和Chrome中的方式,但是当我去IE时它不起作用。它只打印div的一页,然后打印页眉和页脚。我试着添加一些新的代码,看看我能否更好地工作,但仍然有问题。当前的代码打印出来很好,但不会继承它们在页面上的样式,而不是在外部样式表中。下面的注释代码是他们之前在那里的。有没有人有任何帮助?在IE中打印div的内容

function buildPrint() { 

     var sourceDiv = document.getElementById("display_div"); 
     var WindowObject = window.open('', 'print_div', 'width=750,height=650,top=50,left=50,toolbars=no,scrollbars=yes,status=no,resizable=yes'); 
     WindowObject.document.writeln(sourceDiv.innerHTML); 
     WindowObject.document.close(); 
     WindowObject.focus(); 
     WindowObject.print(); 
     WindowObject.close(); 

     //document.getElementById("print_div").innerHTML = sourceDiv.innerHTML; 
     //window.print(); 

    } 
<asp:Content ID="Content3" ContentPlaceHolderID="BodyPlaceHolder" runat="server"> 
<div id="display_div"> 
<asp:CheckBox ID="showAllOptionals" runat="server" Text="Show All Optionals" AutoPostBack="true" /> 
<asp:Literal ID="mainTable" runat="server" /> 
</div> 

</asp:Content> 
<asp:Content ID="Content4" ContentPlaceHolderID="PrintContent" runat="server"> 
<div id="print_div" style="page-break-after:avoid;"> 
</div> 

</input><input onclick=\"buildPrint();\" id=\"printBtn\" type=\"button\" value=\"Print\"> 
+3

根据我的经验,在IE中打印很麻烦。最好在新窗口中打开内容,然后在该新窗口中调用print()。 –

+0

这里有几个链接,你可以看看 http://stackoverflow.com/questions/10203199/generate-print-preview-of-a-web-page-in-asp-net 第二个链接应该允许你做你正在尝试使用JavaScript - http://boardreader.com/thread/print_div_contents_in_javascript_oy3hwX4mzp2.html – MethodMan

+0

这是一个客户端问题,所以请忽略服务器端代码。 –

回答

1

我得到了解决方案,我不得不添加不同的CSS,所以div溢出和打印。感谢所有的帮助