通常我们在定义了与window同名的方法时,会自动覆盖掉window同名的方法。close()方法也不例外。示例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title></title> <script type="text/javascript"> function close() { alert(1); } </script> </head> <body> <input type="button" value="确定" onclick="close()" /> </body> </html>
但是点击确定按钮,你会发现根本没按预期弹出“1”。这是因为我们定义的close方法虽然覆盖了window.close,但是document下还有一个close方法没被覆盖。为了覆盖document.close方法,我们需要添加一句代码:
document.close = close;
再尝试一次成功!!!