0

我有一个带有表格对象的 div,它填充页面的 onload 事件。

<div id="divcontent" runat="server">
<asp:Table id="tblcontent" runat="server" CellPadding="4" align="center"   width="80%">      </asp:Table>
</div>     

<div align="left" style ="width:90%; padding-top:20px;">
<input value="Print" type="button" onclick="PrintDiv();"/>       
</div> 

我有下面的代码来打开一个带有 div 内容的弹出窗口,以便只打印 div 内容:

<script type="text/javascript">

function PrintDiv() {

    var divToPrint = document.getElementById('divcontent');

    var popupWin = window.open('', '_blank', 'width=500,height=700');

    popupWin.document.open();

    popupWin.document.write('<html><body onload="window.print()">' +   divToPrint.innerHTML + '</html>');

    popupWin.document.close();
}

</script> 

但是当弹出窗口打开时,它是空的!有人可以说为什么吗?

4

1 回答 1

3

如果您的页面有母版页,那么 divcontent 不会像您设置的那样在浏览器上显示 id 值runat="server",因此使用ClientID控件获取 div 的呈现 id。

尝试这个,

function PrintDiv() {
    var divToPrint = document.getElementById('<%= divcontent.ClientID %>');

    var popupWin = window.open('', '_blank', 'width=500,height=700');
    popupWin.document.open();
    popupWin.document.write('<html><body onload="window.print()">' +   divToPrint.innerHTML + '</html>');
    popupWin.document.close();
}
于 2012-11-27T08:32:04.837 回答