На этой случайной странице редактирования англо-википедии можно добавить некоторый контент (скажем, "тест"), а затем сохранить его с помощью существующей комбинации клавиш 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;
}
});
});
Я также пытался заменить return false
на e.preventDefault()
или evt.stopPropagation()
, но все не удалось (без ошибок консоли).
Что не так с кодом?
Примечание: Этот вопрос отличается от от этого тем, что в нем основное внимание уделяется отключению заданной ранее существующей комбинации клавиш, а не сохранению функций вобщее.
Обновление для 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();
}
});
});