无法使用Javascript打印div的内容

时间:2015-04-16 13:23:12

标签: javascript

我试图在"打印"时打印div的内容。单击按钮。 我一直收到这个错误:"无法设置属性的值< innerHTML&#39 ;:对象为null或未定义。"我通过互联网阅读了一些帖子,但我仍然无法找到可行的解决方案。

这是我用来打印的javascript代码(来自here):

<script type="text/javascript">
    function printDiv(divName) {
        var printContents = document.getElementById(divName).innerHTML;
        var originalContents = document.body.innerHTML;

        document.body.innerHTML = printContents;

        window.print();

        document.body.innerHTML = originalContents;
    }
</script>

我的按钮事件在这里引发:

<asp:Button ID="ButtonPrint" runat="server" Text="Print »" OnClientClick="printDiv('content');return false"></asp:Button>

这就是我应该打印的div:

 <div id="content" runat="server">
    <h1 class="title" runat="server" id="formulario"></h1>
    <asp:Table ID="TableForm" runat="server"></asp:Table>
    <div id="TableQuest" runat="server">
    </div>
    <asp:Table ID="TableText" runat="server"></asp:Table>
   <asp:Label ID="LabelInfo" runat="server" Text=""></asp:Label>
</div>   

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

感谢@ Evan Knowles我终于找到了解决方案。

我实际上使用的是MasterPage和内容页面,因此我的ID名称&#39;内容&#39;在&ContentSlaceHolder1_content&#39;。

中自动更改

如果使用新生成的id调用该方法:<asp:Button ID="ButtonStampa" runat="server" Text="Stampa »" OnClientClick="printDiv('ContentPlaceHolder1_content');return false"></asp:Button> 一切正常!

答案 1 :(得分:0)

您应该使用 - <%=content.ClientID()%>

您的Divserver side,因此您在问题中提及时不会得到div .ClientID。您必须使用document.getElementById('<%=content.ClientID %>').innerHTML ,如下面的代码。

{{1}}