2011-08-20 100 views
2

对于打印我的Aspx网页我使用下面的代码,但在IE中我遇到了“堆栈在流线:0”的错误消息,并且在fire中没有任何事情发生。 有什么不对?Window.print()无法打印

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

回答

6

您的功能:

function print() { 
    window.print(); // <-- refers to this custom function 
} 

会把print到全局对象window.print。所以实际上你在调用自己的函数本身,这会自动调用,等等。这会永远持续下去,这会导致溢出。

由于window.print已经在本地定义,所以为什么不消除自定义函数?如果您删除function print() {...}它应该可以正常工作,因为它会将“真实”window.print(因为print只是window.print的快捷方式),它实际上会执行打印。

+2

或者至少不会给它一个名字,它会隐藏你想使用的函数名称... – Oded

+0

是的,你是对的。非常感谢 –

+0

有史以来最好的错误。错误信息虽然很具描述性。 – SoonDead