亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何理解event?

如何理解event?

AllySu 2017-12-01 14:20:40
<!DOCTYPE?html> <html> <head> ????<meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8"?/> ????<title>按下鍵盤,顯示keyCode</title> ????<style> ????body?{ ????????text-align:?center; ????????font:?30px/1.5; ????} ????</style> ????<script?type="text/javascript"> ????window.onload?=?function()?{ ????????var?oP?=?document.getElementsByTagName("p")[0]; ????????document.onkeydown?=?function(event)?{ ????????????var?event?=?event?||?window.event; ????????????oP.innerHTML?=?event.keyCode; ????????????return?false; ????????} ????} ????</script> </head> <body> ????<p>這里將顯示您按下鍵的?keyCode</p> </body> </html> ----------------------------------------------------------------------------------------------------- 第一:為什么var?event?=?event?||?window.event;不是寫在document.onkeydown函數外,不是先兼容再傳參數嗎? 第二:為什么刪了參數event和?var?event?=?event?||?window.event;后,不管在哪個瀏覽器測試,依然沒有問題?
查看完整描述

2 回答

已采納
?
pardon110

TA貢獻1038條經驗 獲得超227個贊

第一個問題源于瀏覽器對事件對象解析。理論上只要各大瀏覽器廠商使用相同的api.就不用寫一些兼容性代碼。寫在onkeydown函數內,是為了獲取按鍵一動作產生的事件(keydown事件)。

第二問題。刪除 代碼沒問題,只是你第用的瀏覽器版本太接近現代版本了(新版本各大瀏覽器api趨向一支致)。說白點,弄幾個 低版本的瀏覽器測,比如ie6,7,8試試?;蛘咴诰€一些不同版本內核的瀏覽器測試軟件看看。

查看完整回答
反對 回復 2017-12-02
  • AllySu
    AllySu
    OK,IE6測試字體變大,其他沒有問題。
?
好的好的

TA貢獻2條經驗 獲得超0個贊

補充下, 在現代大多數瀏覽器中, 一次事件的事件對象(event), 是傳給回調函數(callback)的, 于是你可以在你自己寫的事件回調中定義形參(e或event或無論什么)拿到這個event對象,但是?。?瓜皮老IE,它的每次事件觸發后, 不是通過回調函數把event給調用者, 而是直接賦給了window.event這個全局屬性?。。X殘吧!) 所以,這個時候只能通過window.evnet訪問了,綜上所述,是為了兼容低版本IE。 所以,這段代碼當然要放在回調內部, 放在外部的話, window.event還沒被賦值呢。

查看完整回答
反對 回復 2017-12-28
  • 2 回答
  • 1 關注
  • 1963 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號