2011-06-16 53 views
0

我寫了一些代碼來檢查用戶是否在Google上啓動搜索(單擊「搜索」按鈕或鍵入Enter)。eventListener沒有使用Javascript捕捉按鍵事件

我的代碼工作正常(這是一個Firefox擴展),除非我無法獲得按鍵的代碼爲未知原因按下。

我的代碼:

window.addEventListener("submit", function() { myExtension_with_click.init(); }, false); 
window.addEventListener("keypress", function() { myExtension_with_keypress.init(); }, false); 

var myExtension_with_click = { 
    init: function() {   
     alert("This works"); 
    } 
} 

var myExtension_with_keypress = { 
    init: function() { 
      alert("This works") 
      if (window.event.keyCode == 13) { 
       // This doesn't work 
       alert("This doesn't work"); 
      } 
    } 
} 
+0

傳遞參數作爲事件定義函數作爲函數(事件)和if條件(event.keyCode == 13)它的工作原理。 – Pratik 2011-06-16 10:25:29

回答

0

一個簡單的解決方法是在事件偵聽器使用事件 「改變」!

1

試試這個它的工作原理

<html> 
<head> 
<script> 
    window.addEventListener("submit", function() { myExtension_with_click.init(); }, false); 
    window.addEventListener("keypress", function(event) { myExtension_with_keypress.init(event); }, false); 

    var myExtension_with_click = { 
     init: function() {   
      alert("This works"); 
     } 
    } 

    var myExtension_with_keypress = { 
     init: function(event) { 
       //alert("This works") 
       if (event.keyCode == 13) { 
        // This doesn't work 
        alert("This doesn't work"); 
       } 
     } 
    } 

</script> 
</head> 
<body> 
    <input /> 
</body> 

+0

感謝您的代碼! – Bruno 2011-06-16 10:33:29

+0

我已經測試了您的解決方案,但不幸的是它無法正常工作:當在搜索表單中輸入關鍵字後輸入「Enter」時,不顯示警報,只有在焦點不在搜索表單(當我點擊頁面的一部分,然後鍵入「Enter」)。 – Bruno 2011-06-16 13:51:46

+0

@布賴恩你的意思是當用戶輸入像'Enter'這樣的單詞時,它會顯示該消息。實際上你想要什麼?你想要鍵碼或特定的詞 – Pratik 2011-06-16 14:21:38