You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
const isff = typeof navigator !== 'undefined' ? navigator.userAgent.toLowerCase().indexOf('firefox') > 0 : false;
|
|
|
|
|
|
|
|
// 绑定事件
|
|
|
|
function addEvent(object, event, method) {
|
|
|
|
if (object.addEventListener) {
|
|
|
|
object.addEventListener(event, method, false);
|
|
|
|
} else if (object.attachEvent) {
|
|
|
|
object.attachEvent('on' + event, function () { method(window.event); });
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// 修饰键转换成对应的键码
|
|
|
|
function getMods(modifier, key) {
|
|
|
|
var mods = key.slice(0, key.length - 1);
|
|
|
|
for (var i = 0; i < mods.length; i++) mods[i] = modifier[mods[i].toLowerCase()];
|
|
|
|
return mods;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 处理传的key字符串转换成数组
|
|
|
|
function getKeys(key) {
|
|
|
|
if (!key) key = '';
|
|
|
|
var keys, index;
|
|
|
|
|
|
|
|
key = key.replace(/\s/g, ''); // 匹配任何空白字符,包括空格、制表符、换页符等等
|
|
|
|
keys = key.split(','); // 同时设置多个快捷键,以','分割
|
|
|
|
index = keys.lastIndexOf('');
|
|
|
|
|
|
|
|
// 快捷键可能包含',',需特殊处理
|
|
|
|
for (; index >= 0;) {
|
|
|
|
keys[index - 1] += ',';
|
|
|
|
keys.splice(index, 1);
|
|
|
|
index = keys.lastIndexOf('');
|
|
|
|
}
|
|
|
|
|
|
|
|
return keys;
|
|
|
|
}
|
|
|
|
|
|
|
|
//比较修饰键的数组
|
|
|
|
function compareArray(a1, a2) {
|
|
|
|
var arr1 = a1.length >= a2.length ? a1 : a2;
|
|
|
|
var arr2 = a1.length >= a2.length ? a2 : a1;
|
|
|
|
|
|
|
|
for (var i = 0; i < arr1.length; i++) {
|
|
|
|
if (arr2.indexOf(arr1[i]) === -1) return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export {
|
|
|
|
isff,
|
|
|
|
getMods,
|
|
|
|
getKeys,
|
|
|
|
addEvent
|
|
|
|
}
|