Self.close()无法处理keycode事件

self.close() not working with a keycode event

本文关键字:处理 keycode 事件 close Self      更新时间:2023-09-26

我试图用ESC键关闭浏览器窗口,但不知道为什么。Close DOS not work.

这就是我正在做的(我尝试使用document代替body,但没有任何改变):

    $('body').keydown(function(e) {
          if(e.keyCode == 27){
                alert(e.keyCode); // alert work fine ( 27 ) 
                self.close();
          }
    });

我错过了什么?

编辑:

做得很好:

    $("#closeWindow").click(function(){
        self.close();
    });

谢谢。

由于您的警报正在工作,我假设self.close()由于安全原因失败。

这段代码是一个绕过安全措施的hack:

window.open('', '_self', '');
window.close();

如果通过javascript打开Windows,则只能通过javascript关闭。如果您正在使用的窗口没有通过代码打开,那么您将无法通过代码关闭它。请参阅描述部分:https://developer.mozilla.org/en/DOM/window.close在互联网上有一些老的技巧来解决这个问题,但大多数在最新版本的浏览器中已经过时了。

此外,您将希望将keydown事件添加到document而不是body元素,并且当您使用self.close()时,您可能最好使用window.close()以避免与范围混淆-您希望窗口关闭,因此显式设置没有害处。

试试$(document)

没有"body"对象供您附加。