|
@@ -8,6 +8,14 @@ document.onkeydown = function (event: KeyboardEvent): void {
|
|
|
xcEvent.value = event
|
|
|
}
|
|
|
|
|
|
+const preventDefault = (event: Event) => {
|
|
|
+ event.returnValue = false
|
|
|
+ try {
|
|
|
+ event.preventDefault()
|
|
|
+ } catch {
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
export const shortcutTrigger = (event, registerShortcuts, disabled = false) => {
|
|
|
for (let listKey in registerShortcuts) {
|
|
|
let data = registerShortcuts[listKey]
|
|
@@ -15,16 +23,14 @@ export const shortcutTrigger = (event, registerShortcuts, disabled = false) => {
|
|
|
// 同时按下
|
|
|
let pressSimultaneously = listKey + 'Key'
|
|
|
if (event[pressSimultaneously] && event.key === key) {
|
|
|
- event.returnValue = false
|
|
|
- event.preventDefault()
|
|
|
+ preventDefault(event)
|
|
|
if (whetherToDisable(disabled)) return;
|
|
|
data[key]()
|
|
|
return
|
|
|
}
|
|
|
if (key === 'direction') {
|
|
|
if ((event[pressSimultaneously] && direction.includes(event.code))) {
|
|
|
- event.returnValue = false
|
|
|
- event.preventDefault()
|
|
|
+ preventDefault(event)
|
|
|
if (whetherToDisable(disabled)) return;
|
|
|
data['direction'](event.key)
|
|
|
return
|
|
@@ -32,8 +38,7 @@ export const shortcutTrigger = (event, registerShortcuts, disabled = false) => {
|
|
|
}
|
|
|
if (key === 'number') {
|
|
|
if (event[pressSimultaneously] && event.code === ('Digit' + event.key)) {
|
|
|
- event.returnValue = false
|
|
|
- event.preventDefault()
|
|
|
+ preventDefault(event)
|
|
|
if (whetherToDisable(disabled)) return;
|
|
|
data['number'](event.key)
|
|
|
return
|
|
@@ -41,8 +46,7 @@ export const shortcutTrigger = (event, registerShortcuts, disabled = false) => {
|
|
|
}
|
|
|
}
|
|
|
if (listKey === event.key) {
|
|
|
- event.returnValue = false
|
|
|
- event.preventDefault()
|
|
|
+ preventDefault(event)
|
|
|
if (whetherToDisable()) return;
|
|
|
registerShortcuts[listKey]()
|
|
|
return
|