2014-10-16 38 views
1
<!DOCTYPE html> 
<html> 
<head> 
<script> 
function whichButton() { 
    document.getElementById("demo").innerHTML = event.keyCode; 
} 
</script> 
</head> 

<body onkeyup="whichButton()"> 

<p><b>Note:</b> Make sure the right frame has focus when trying this example!</p> 

<p>Click on this page, and press a key on your keyboard.</p> 

<p id="demo"></p> 

</body> 
</html> 

以上是我修改的w3schools.com的代碼。插入「事件」與否有什麼區別?

原代碼有參數「事件」是這樣的:whichButton(事件)

我不知道那是什麼參數「事件」,爲什麼人們插入「事件」參數的功能。

我從上面的代碼刪除了'event'參數,但它仍然正常工作。

我認爲代碼沒有錯。必須有我不知道的東西...

+3

在某些瀏覽器中,'event'引用全局變量(window對象的一個​​屬性)。在其他情況下,事件對象作爲參數傳遞給事件處理程序,而不是全局變量。在Firefox中試用你的代碼。 – Pointy 2014-10-16 16:26:25

回答

0

「事件」是一個兼性事件回調參數,它可以用來獲取很多信息,例如哪個鍵被觸發。

查看Event瞭解更多信息。

0

隱式event在所有瀏覽器中都是無效的,不應使用。我的猜測是event爲了兼容性原因被添加到某些瀏覽器。

下面的測試告訴我們,如果他們是同一個對象的引用:

document.body.addEventListener("keyup", function (e) { alert(e === event); }); 

的Internet Explorer 11:true

谷歌Chrome瀏覽器39:true

是Mozilla Firefox 33:ReferenceError: event is not defined

+0

在所有瀏覽器上都一樣嗎? – Danny 2014-10-16 17:06:05

+0

我以爲是,但不是。在Chrome和IE中它們是平等的。然而,在Firefox中,我得到'ReferenceError:event is not defined'。 – 2014-10-16 17:17:10

+0

我更新了我的答案。 – 2014-10-16 17:32:44

相關問題