2011-08-28 39 views
1

出於某種原因,這個腳本不能在Firefox工作:Esc鍵沒有得到認可在Firefox

document.onkeydown=function keypress(e) { 
    if (e.keyCode == 27) { 
     window.location = "/edit" 
    }; 
}; 

它在Chrome中工作正常,但由於某種原因,它不能在Firefox工作。

基本上,當你按下退出鍵時,它所做的是加載/edit頁面。

+0

在FF5中爲我工作:http://jsfiddle.net/Tm2PZ/ – Mrchief

+0

嘗試運行'console.log(e)'。檢查輸出以檢查是否發生了某些事情。 – Trevor

回答

6

使用:

document.onkeydown=function keypress(e) { 
    e=(e||window.event); 
    if (e.keyCode == 27) { 
     try{e.preventDefault();}//Non-IE 
     catch(x){e.returnValue=false;}//IE 
     window.location = "/edit"; 
    }; 
} 

ESC默認動作是停止加載頁面,
所以你必須從這種行爲阻止,否則你無法改變位置。

小提琴:http://jsfiddle.net/doktormolle/CsqgE/(點擊進入結果幀使用ESC第一前)

但是但是,你真的應該使用另一個關鍵。
如果用戶使用ESC,則沒有別的用戶期望當前頁面的加載停止。

+0

啊。我不知道那個鍵盤快捷鍵。我選擇Escape是因爲我知道SquareSpace使用它,所以我必須嘗試找出另一個關鍵。 – JacobTheDev

0

事件處理程序爲我工作:http://jsfiddle.net/Tm2PZ/

我懷疑你設置lcoation無效。

改爲嘗試設置window.location.href

+0

@Mrchief:你錯了。 –

+0

@ Dr.Molle:與你同意。刪除了我的評論。 – Mrchief

+0

@Dmitriy:這裏有什麼問題? – Mrchief