这里只有精品久久,精品欧美激情精品一区,日韩中文视频免费在线观看 ,国产精品日韩欧美一区二区三区

????????? JS如何監(jiān)聽(tīng)鍵盤(pán)組合按鍵 ?????????

1534826921684635.jpg

我們都知道,JS監(jiān)聽(tīng)鍵盤(pán)事件,如下:

document.onkeydown = function(event) {
	var e = event || window.event || arguments.callee.caller.arguments[0];
	if (e && e.keyCode == 27) {
		alert("按 Esc")
	}
	if (e && e.keyCode == 32) {
		alert("按空格")
	}
	if (e && e.keyCode == 13) {
		alert("按回車(chē)")
	}
};

有些時(shí)候,我們需要在網(wǎng)頁(yè)上,使用javascript增加一些快捷按鍵,方便用戶使用一些常用的操作,比如:保存,撤銷(xiāo),復(fù)制、粘貼等等。

下面簡(jiǎn)單梳理一下思路:

我們所熟悉的按鍵有這么集中類(lèi)型:

單獨(dú)的按鍵操作,如:delete、up、down等

兩位組合建,如:ctrl(cmd)+ 其他按鍵,alt+其他按鍵,shift+其他按鍵

三位組合鍵,如:ctrl(cmd)+ shift + 其他按鍵,Ctrl(cmd)+ alt + 其他按鍵

大概只有這么幾種情況了,至少我沒(méi)有見(jiàn)過(guò)其他的情況。如果確實(shí)存在的話,基本實(shí)現(xiàn)的原理也比較類(lèi)似,本文就不再贅述了。

上面這三種情況, 都要處理的一個(gè)關(guān)鍵問(wèn)題是阻止默認(rèn)行為:比如刪除按鍵,保存網(wǎng)頁(yè)按鍵,保存書(shū)簽等等,這些網(wǎng)頁(yè)上的默認(rèn)行為都需要阻止掉。另外一個(gè)就是監(jiān)聽(tīng)按鍵,然后根據(jù)自己的需求,處理相應(yīng)的事件。

基于上面提到的需要做的兩件事,我們結(jié)合代碼詳細(xì)理解一下。

我們寫(xiě)一個(gè)簡(jiǎn)單的例子:

document.onkeydown = function(e) {
    console.log(e);
}

這個(gè)事件有很多的屬性和方法,這里我們不會(huì)一一進(jìn)行說(shuō)明,只是挑出來(lái)我們比較感興趣的幾個(gè)進(jìn)行說(shuō)明。

對(duì)照上面提到需要處理的兩件事:

第一阻止默認(rèn)事件,在W3C標(biāo)準(zhǔn)和IE下,處理方式不太一致。分別是執(zhí)行e.preventDefault()方法和將e.returnValue = false屬性。當(dāng)然如果你使用的jquery等類(lèi)庫(kù)的話,只需要寫(xiě)一個(gè)e.preventDefault()就可以了,它幫你做到了兼容。

第二監(jiān)聽(tīng)按鍵類(lèi)型,按鍵分兩種情況,一種是單獨(dú)按鍵(只有一個(gè)鍵),一種是組合鍵(兩個(gè)以上按鍵)。單獨(dú)按鍵需要監(jiān)聽(tīng)事件的keyCode、charCode和which屬性。

這張表介紹的比較詳細(xì),出自《JavaScript Madness不同的瀏覽器的keycode比較》

當(dāng)然使用了jquery也不用擔(dān)心兼容問(wèn)題了,直接使用e.keyCode即可。那怎么知道用戶使用了組合鍵呢?

我們看到事件還有這么幾個(gè)屬性:ctrlKey(metaKey)、altKey、shiftKey,當(dāng)你同時(shí)按下組合鍵的時(shí)候,這幾個(gè)屬性會(huì)變成true,所以組合鍵就可以通過(guò)監(jiān)聽(tīng)按鍵code和這幾個(gè)屬性的狀態(tài)進(jìn)行判斷了。

舉一個(gè)簡(jiǎn)單的例子,監(jiān)聽(tīng)ctrl(cmd)+ s事件:

document.onkeydown = function(e) {
        var keyCode = e.keyCode || e.which || e.charCode;
        var ctrlKey = e.ctrlKey || e.metaKey;
        if(ctrlKey && keyCode == 83) {
            alert('按住了 CTRL+S');
        }
        e.preventDefault();
        return false;
}

JS監(jiān)聽(tīng)組合按鍵的原理基本上就是這個(gè)樣子了,但是發(fā)現(xiàn)了一些問(wèn)題,比如說(shuō):ctrl(cmd)+ w(n、q)等chrome瀏覽器快捷鍵無(wú)法進(jìn)行阻止,這個(gè)不知道有沒(méi)有方式進(jìn)行阻止。個(gè)人猜測(cè)可能需要更高的權(quán)限才能做這件事。

介紹了原理之后,有什么更好的干貨要介紹的嗎?這個(gè)當(dāng)然沒(méi)有了。。。

這怎么可能,google是那么的強(qiáng)大,只有想不到?jīng)]有做不到。只要你想用的,這里都有的。我在網(wǎng)上找到這么一個(gè)JS感覺(jué)用起來(lái)還是比較方便的。它就是shortcuts.js,官網(wǎng)地址。還有一個(gè)jquery版本的,github地址。 

shortcuts.js支持單獨(dú)按鍵和組合按鍵,同時(shí)可以通過(guò)配置是組合按鍵在輸入框內(nèi)失效。

它的使用方式是:    

shortcut("[",function() {
    alert("Hi there!");
}, {
    'type':'keydown', //事件
    'propagate':false, //是否支持冒泡
    'disable_in_input':true, //是否在輸入框內(nèi)有效
    'target':document, //作用范圍
});

可以通過(guò)在源碼中擴(kuò)展特殊按鍵,是組合按鍵更豐富。

这里只有精品久久,精品欧美激情精品一区,日韩中文视频免费在线观看 ,国产精品日韩欧美一区二区三区
亚洲天堂久久| 国产午夜精品一区二区三区视频 | 亚洲欧美一区二区精品久久久| 欧美视频在线视频| 久久综合狠狠综合久久综青草 | 亚洲区国产区| 国产日韩专区在线| 老司机久久99久久精品播放免费 | 国内久久精品| 免费一区视频| 久久精品一区二区三区不卡| 国产精品成人一区二区| 在线一区二区日韩| 亚洲福利精品| 欧美日韩伦理在线免费| 久久综合伊人77777蜜臀| 亚洲激情网站免费观看| 欧美色图一区二区三区| 欧美久久99| 欧美一区二区三区另类| 亚洲国产二区| 在线观看亚洲| 国产精品多人| 欧美日韩一区二区三区在线| 亚洲国产专区校园欧美| 午夜精品视频网站| 欧美va亚洲va国产综合| 亚洲激情视频网| 国产精品狼人久久影院观看方式| 欧美二区在线看| 亚洲图色在线| 伊人久久亚洲影院| 国内精品久久久久久影视8| 欧美大片网址| 欧美**人妖| 亚洲欧美在线播放| 亚洲大胆美女视频| 影院欧美亚洲| 国产精品久久久一区二区| 欧美色图首页| 久久久综合视频| 在线视频日韩| 在线视频你懂得一区| 国一区二区在线观看| 国产亚洲美州欧州综合国| 欧美日韩美女| 国产精品久久久| 欧美二区在线播放| 欧美激情四色| 久久综合久久综合这里只有精品| 久久免费观看视频| 午夜精品在线看| 亚洲精品一级| 一区二区日韩免费看| 精品动漫3d一区二区三区| 激情欧美国产欧美| 国产精品永久入口久久久| 国产欧美一区二区三区久久| 欧美日韩免费一区| 国产精品大片wwwwww| 中文国产成人精品| 欧美日韩免费在线| 在线精品观看| 久久国产欧美日韩精品| 一区二区亚洲欧洲国产日韩| 欧美精品黄色| 99国内精品久久| 一区二区三区视频免费在线观看 | 欧美福利精品| 欧美日产国产成人免费图片| 久久亚洲影院| 欧美电影免费观看| 久久久久久亚洲精品不卡4k岛国| 亚洲精选一区| 亚洲精品日韩在线| 国产精品久久久久久久久久三级| 亚洲国产精品黑人久久久| 亚洲激情亚洲| 在线欧美福利| 亚洲美女诱惑| 亚洲精品乱码久久久久| 中文一区二区| 国产精品亚洲综合久久| 国产午夜精品全部视频播放 | 久久久亚洲国产美女国产盗摄| 久久一区二区三区超碰国产精品| 欧美一站二站| 欧美大胆a视频| 媚黑女一区二区| 欧美视频在线观看免费| 欧美日韩国产综合网| 国产欧美日韩三级| 国产精品免费一区豆花| 在线播放亚洲| 亚洲国产高清在线观看视频| 在线亚洲欧美| 久久久久久久久久久久久女国产乱| 欧美一级二区| 欧美精品久久一区二区| 欧美国产精品v| 国产麻豆成人精品| 国产视频在线观看一区| 日韩视频一区二区三区在线播放免费观看| 亚洲国产精品久久| 亚洲欧美日韩国产一区二区三区| 免费人成网站在线观看欧美高清 | 久久九九国产精品| 久久精品中文字幕免费mv| 99亚洲伊人久久精品影院红桃| 国产一区二区三区四区在线观看 | 国产精品久久久久9999| 国产精品综合av一区二区国产馆| 国产精品日本精品| 亚洲人精品午夜| 99精品国产热久久91蜜凸| 欧美在线视频免费| 欧美日韩中文另类| 国产精品日韩二区| 国产精品久久久久久妇女6080| 99riav1国产精品视频| 国内精品免费在线观看| 中文av一区特黄| 欧美成人国产| 欧美日韩一二三四五区| 一区国产精品| 亚洲精品国久久99热| 久久精品视频va| 国产精品免费观看在线| 国产有码一区二区| 亚洲欧美日韩区| 欧美日韩在线免费视频| 国产精品日本精品| 一区二区黄色| 欧美成人第一页| 国产精品久久久999| 亚洲看片网站| 欧美.www| 国产精品三级久久久久久电影| 99精品国产在热久久婷婷| 牛牛精品成人免费视频| 国产精品白丝jk黑袜喷水| 亚洲毛片一区| 欧美国产第二页| 国产欧美日韩在线| 亚洲欧美日韩久久精品 | 亚洲一区二区精品| 欧美精品日韩www.p站| 国产精品亚洲成人| 亚洲你懂的在线视频| 欧美日韩亚洲一区| 国产精品私房写真福利视频| 9i看片成人免费高清| 亚洲伊人一本大道中文字幕| 国产日本欧美一区二区三区| 欧美日韩中文字幕| 亚洲精品久久嫩草网站秘色| 久久综合精品国产一区二区三区| 欧美日韩四区| 亚洲精品中文字幕在线| 免费日韩视频| 国产精品一区在线观看| 午夜精品福利一区二区蜜股av| 欧美日韩理论| 国内精品久久国产| 久久久99精品免费观看不卡| 国产日产亚洲精品| 一本色道久久综合亚洲91| 欧美日韩成人一区二区三区| 99亚洲精品| 欧美色一级片| 亚洲国产成人av| 欧美电影免费观看大全| 亚洲欧洲在线视频| 欧美女同在线视频| 精品99视频| 欧美va天堂在线| 亚洲精选在线| 欧美午夜不卡在线观看免费| 亚洲国产精品一区| 欧美精品首页| 中文一区二区| 国产婷婷精品| 久久日韩精品| 国产欧美精品一区二区三区介绍| 性欧美video另类hd性玩具| 国产三级欧美三级日产三级99| 在线亚洲观看| 国产欧美日韩不卡| 久久久久亚洲综合| 亚洲高清视频在线| 欧美日本韩国在线| 91久久在线| 国产精品不卡在线| 久久精品国产清高在天天线| 亚洲第一狼人社区| 欧美日韩国产a| 亚洲精品免费电影| 国产精品二区在线| 久久精品电影| 91久久视频|