我有一个文本框,用户可以在其中写一些文本。

现在,如果他要打印该文本,则应单击“打印”按钮。
“打印”按钮的设计如下:

<asp:Button ID="btnPrint" runat="server" Text="Print" Enabled="False" OnClientClick = "CallPrint('txtReadFiles')" />


现在,在aspx页面的顶部,函数CallPrint声明如下:

<script type="text/javascript" language="javascript">
        function CallPrint(strid)
        {
            var prtContent = document.getElementById(strid);
            **var docwrite=prtContent.innerHTML;**
            var WinPrint = window.open('','','left=0,top=0,toolbar=0,status=0');
            WinPrint.document.open();
            WinPrint.document.write(docwrite);
            WinPrint.document.close();
            WinPrint.focus();
            WinPrint.print();
            WinPrint.close();
        }
    </script>


但是,当我单击打印按钮时,在标有**的行上出现错误

JavaScript运行时错误:无法获取未定义或空引用的属性“ innerHTML”

这里有什么问题?

最佳答案

那可能是因为该行var prtContent = document.getElementById(strid);失败,即返回null。
您要获取的文本框也是服务器控件吗?如果是这样,则在运行时其ID将更改,如果确实是问题,请查看here

10-06 02:52