【发布时间】:2019-03-26 06:15:24
【问题描述】:
在这个随机的English-Wikipedia edit page 中可以添加一些内容(比如“测试”),然后通过 Alt+Shift+S 的预先存在的组合键保存它。
我希望特别阻止这种行为(不删除带有document.querySelector("#wpSave").remove(); 的保存按钮)。
我尝试了以下失败的代码:
// ==UserScript==
// @name wiki
// @match https://*.wikipedia.org/*
// ==/UserScript==
document.addEventListener("DOMContentLoaded", ()=>{
document.addEventListener('keypress', function(e) {
if (e.key == 16 && e.key == 18 && e.key == 83) {
return false;
}
});
});
我也尝试用e.preventDefault() 或evt.stopPropagation() 替换return false,但都失败了(没有控制台错误)。
代码有什么问题?
注意:此问题与 this one 的不同之处在于,它通常侧重于禁用给定的预先存在的组合键功能,而不是保存功能 .
dotoconor 更新
我在控制台中使用了这个,但我仍然遇到同样的问题:
document.addEventListener("DOMContentLoaded", ()=>{
const state = {};
document.addEventListener('keydown', function(e) {
state[e.key] = true;
});
document.addEventListener('keyup', function(e) {
state[e.key] = false;
});
document.addEventListener('keyup', function(e) {
state[e.key] = false;
if (state["Alt"] && state["Shift"] && (state["S"] || state["s"])) {
return e.preventDefault();
}
});
});
【问题讨论】:
-
The values of
keyproperty 很高兴知道...以及keypress 的实际工作原理。
标签: javascript jquery html return keyboard-shortcuts