簡體   English   中英

無法使用Javascript打印div的內容

[英]Unable to print div's content using Javascript

單擊“打印”按鈕時,我正在嘗試打印div的內容。 我不斷收到此錯誤:“無法設置屬性'innerHTML'的值:對象為null或未定義。” 我通過Internet閱讀了一些帖子,但是仍然找不到有效的解決方案。

這是我用來打印的JavaScript代碼(從此處獲取 ):

<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>   

任何幫助將不勝感激!

感謝@ Evan Knowles,我終於找到了解決方案。

我實際上使用的是MasterPage和Content Page,因此我的ID名稱“ content”會在“ ContentPlaceHolder1_content”中自動更改。

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

您應該使用- <%=content.ClientID()%>

您的Divserver side因此您不會像在問題中提到的那樣獲得此div 您必須使用.ClientID作為以下代碼。

document.getElementById('<%=content.ClientID %>').innerHTML

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM