nobcainiao
2015-12-26 15:36:25
關(guān)于event事件對(duì)象問(wèn)題,一直沒(méi)搞太清楚。我的理解是,一旦有事件被觸發(fā)(無(wú)論是onclick,onmouseout,onmouseover等),系統(tǒng)就會(huì)自動(dòng)的觸發(fā)一個(gè)event事件,這個(gè)event是來(lái)獲取onclick,onmouseout,onmouseover等的詳細(xì)信息的,比如按鍵信息等),意思就是我要知道鼠標(biāo)點(diǎn)擊的是左鍵還是右鍵,鍵盤(pán)上按下的是哪個(gè)鍵就得用event來(lái)獲取對(duì)么?那么對(duì)于以下的例子,去掉系統(tǒng)默認(rèn)的行為(在瀏覽器中點(diǎn)擊右鍵會(huì)出現(xiàn)默認(rèn)的菜單)document.oncontextmenu=?function(e){
????var?oEvent;
????if(window.event){
????????oEvent=window.event;
????}else{
????????oEvent=arguments[0];
????}
????retrun?false}這個(gè)例子中,function()里無(wú)論傳不傳參數(shù)e進(jìn)去都會(huì)達(dá)到效果,那么,參數(shù)到底改不改傳進(jìn)去?為什么要傳進(jìn)去?
1 回答
已采納

李曉健
TA貢獻(xiàn)1036條經(jīng)驗(yàn) 獲得超461個(gè)贊
這個(gè)應(yīng)該是做瀏覽器的兼容性的,在有些瀏覽器上觸發(fā)一些系統(tǒng)事件時(shí)會(huì)把這個(gè)事件傳進(jìn)來(lái),但是在有些瀏覽器上不會(huì)傳,而是直接放到window對(duì)象上。所以就會(huì)有上面的if else的處理。而且這個(gè)事件上瀏覽器傳進(jìn)來(lái)的,不是你手動(dòng)傳進(jìn)來(lái)的,你只是去取了一下,其實(shí)在這里?document.oncontextmenu=?function(e) ?這個(gè)e寫(xiě)不寫(xiě)都沒(méi)有關(guān)系,因?yàn)槟阍诤竺娓揪蜎](méi)有直接用到它,你在用到它時(shí)是通過(guò)arguments[0] 來(lái)取的。
添加回答
舉報(bào)
0/150
提交
取消