Window.print()无法打印

Ray*_*phy 2 javascript asp.net

为了打印我的Aspx网页,我使用以下代码,但在IE中遇到"Stack over flow at line:0"错误消息,在火狐中任何事情都不会发生.怎么了?

<head>
 <script language="javascript" type="text/javascript">
        function print() {
            window.print();
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
<div class="toolbar" style="width:400px">
            <ul>
<li>
                <img alt="" src="../../../CssImages/printer_128.png" id="ImgPrint" width="20px" style="cursor:pointer" onclick="print()"/>
                </li>
     </ul>
Run Code Online (Sandbox Code Playgroud)

pim*_*vdb 7

你的功能:

function print() {
    window.print(); // <-- refers to this custom function
}
Run Code Online (Sandbox Code Playgroud)

print作为全球对象投入window.print.所以实际上你正在调用函数本身,它自己调用等等.这将永远持续导致溢出.

因为window.print已经本地定义,为什么不消除自定义功能?如果你删除function print() {...}它应该工作正常,因为它将调用'真实' window.print(print只是一个快捷方式window.print),实际上打印.

  • 或者至少不给它一个名称来隐藏你想要使用的函数名... (2认同)