2011-05-20 74 views
2

我有這個功能可以通過按ESC轉義鍵來關閉彈出窗口。但它不適用於Google Chrome。我不知道什麼是缺失的;有沒有人有辦法解決嗎 ?按ESC鍵關閉Google Chrome的彈出窗口

function doClose(e) 
{ 
    if (!e) e = window.event; 

    if (e.keyCode) 
    { 
     if (e.keyCode == "27") window.close(); 
    } 
    else if (e.charCode) 
    { 
     if (e.keyCode == "27") window.close(); 
    } 
} 
document.onkeypress = doClose; 
+0

如果第二個是如果( e.charCode ===「27」)? – LeRoy 2011-05-20 02:34:51

+0

你可以用'if((e.keyCode || e.charCode)=='27')' – qwertymk 2011-05-20 03:53:12

回答

3

onkeypress不捕獲一些鍵 - 主要是系統鍵,如ESC和F1 - > F12,使用onkeydown代替。也有一個在你的邏輯錯誤,更新到:

function doClose(e) 
{ 
    if (!e) e = window.event; 

    if (e.keyCode) 
    { 
     if (e.keyCode == "27") window.close(); 
    } 
    else if (e.charCode) 
    { 
     if (e.charCode == "27") window.close(); 
    } 
} 
document.onkeydown = doClose;