2017-09-28 67 views
0

我做了一個使用javascript和html的cookie點擊器,並且此刻我做出了這樣的操作,點擊圖片後,它會觸發一個可以提高分數的函數。我想這樣做是爲了不僅能夠點擊圖像,而且只需點擊鍵盤上的任意按鈕即可觸發相同的功能。我只看到代碼在輸入字段中執行此操作。我不確定是否「document.addEventListener(」keydown「,function())」是我正在尋找的。用onkeydown事件觸發一個函數

+0

你試過了嗎?它有用嗎? – epascarello

+0

不,它沒有工作 – joaquinkai

回答

0

嘗試:

document.onkeydown = function() { 
    console.log('my code'); 
}; 

編輯(或):

document.onkeydown = myFn; 
+1

第二個完美的作品!謝謝,這就是我正在尋找的 – joaquinkai

+0

樂意幫忙,歡迎來到Stack Overflow!如果此答案或任何其他人解決了您的問題,請將其標記爲已接受。 – JonahAaron

0

要聽按鍵就可以在文檔添加keydown事件

document.addEventListener("keydown", callBack, false); 

function callBack(e) { 
    var keyCode = e.keyCode; 
    console.log(keyCode); 
} 
0

只是分配一個事件處理程序到您的事件。

如果你要分配整個文檔,使用:

document.addEventListener("keydown", keyDownTextField, false); 

document.getElementById("yourinput").addEventListener("keydown", keyDownTextField, false); 
 

 
function keyDownTextField(e) { 
 
    console.log(e.keyCode); 
 
}
<input id="yourinput" type="text" />

+0

嗯,我不想要一個輸入字段我只想讓整個文檔正在監聽一個keydown事件 – joaquinkai

+0

更新了答案,而不是將其添加到輸入中,只將它添加到文檔中。 – bhansa

0
document.addEventListener('keydown',() => { 
    console.log('a'); 
}); 

應該工作。

但是,某些瀏覽器不提供文檔焦點,這是keydown事件所必需的。

的經典方法本(其更普遍作品)是創建一個離屏<input>元件,並給它一個blur事件來重新獲得焦點時它失去它。這將強制重點始終停留在該輸入上,然後它可以接收關鍵事件。

const input = document.createElement('input'); 
input.style.position = 'absolute'; 
input.style.left = '-100000px'; 
input.addEventListener('blur',() => input.focus()); 
input.addEventListener('keydown',() => console.log('key down')); 
document.body.appendChild(input); 
input.focus(); 

此代碼: - 創建一個新的輸入元素 - 位置,有絕對的方式關閉屏幕的左邊(所以它是不可見) - 增加了一個模糊事件,自動獲取焦點回到 - 添加keydown事件本身