我正在尝试使用ESC键关闭浏览器窗口,但不知道为什么self.close dos不起作用。
这就是我正在做的事情(我尝试使用document
代替body
,但没有改变):
$('body').keydown(function(e) {
if(e.keyCode == 27){
alert(e.keyCode); // alert work fine ( 27 )
self.close();
}
});
我缺少什么?
编辑:
做好这项工作:
$("#closeWindow").click(function(){
self.close();
});
感谢。
答案 0 :(得分:1)
Windows只能通过javascript关闭,如果它们是通过javascript打开的话。如果您正在使用的窗口未通过代码打开,则无法通过代码关闭它。请参阅此处的说明部分:https://developer.mozilla.org/en/DOM/window.close有一些旧的黑客可以在互联网上解决这个问题,但大多数浏览器在大多数浏览器中都已过时。
另外,您需要将keydown
事件添加到document
而不是body元素,当您使用self.close()
时,您最好使用{{1}避免与范围混淆 - 你希望窗口关闭,所以显式没有坏处。
答案 1 :(得分:1)
由于您的警报正在运行,我认为self.close()因安全原因而失败。
此代码是解决此安全措施的黑客行为:
window.open('', '_self', '');
window.close();
答案 2 :(得分:0)
请尝试使用$(document)
。没有“身体”对象可供您附加。