有没有办法在加载时将自定义键盘快捷键 "inject" 添加到页面中?
Is there a way to "inject" a custom keyboard shortcut into a page on load?
我正在研究为自己浏览 reddit 创建一个自定义键盘快捷键。
我的计划是创建一个事件侦听器来侦听某个键和弦,然后在 RES 中切换一个开关。当我加载 Reddit 时,我无法找到 "inject"(不确定我是否使用了正确的词)的方法。
我想要这个快捷方式来在按键时切换夜间模式(或其他开关)。
我找到了一种使用名为 "Tampermonkey" 的 Chrome 扩展的方法。
这是我使用的代码:
var eventUtility = {
addEvent : function(el, type, fn) {
if (typeof addEventListener !== "undefined") {
el.addEventListener(type, fn, false);
} else if (typeof attachEvent !== "undefined") {
el.attachEvent("on" + type, fn);
} else {
el["on" + type] = fn;
}
}
};
(function() {
eventUtility.addEvent(document, "keydown",
function(evt) {
var code = evt.keyCode,
shiftKey = evt.shiftKey;
//Shift Key + N
if (shiftKey && code === 78) {
if(document.getElementById('night mode')){
document.getElementById('night mode').click();
} else {
document.getElementById('RESSettingsButton').click();
var toggleFilter = function() {
document.getElementById('night mode').click();
};
setTimeout(toggleFilter, 50);
}
}
});
}());
我正在研究为自己浏览 reddit 创建一个自定义键盘快捷键。
我的计划是创建一个事件侦听器来侦听某个键和弦,然后在 RES 中切换一个开关。当我加载 Reddit 时,我无法找到 "inject"(不确定我是否使用了正确的词)的方法。
我想要这个快捷方式来在按键时切换夜间模式(或其他开关)。
我找到了一种使用名为 "Tampermonkey" 的 Chrome 扩展的方法。
这是我使用的代码:
var eventUtility = {
addEvent : function(el, type, fn) {
if (typeof addEventListener !== "undefined") {
el.addEventListener(type, fn, false);
} else if (typeof attachEvent !== "undefined") {
el.attachEvent("on" + type, fn);
} else {
el["on" + type] = fn;
}
}
};
(function() {
eventUtility.addEvent(document, "keydown",
function(evt) {
var code = evt.keyCode,
shiftKey = evt.shiftKey;
//Shift Key + N
if (shiftKey && code === 78) {
if(document.getElementById('night mode')){
document.getElementById('night mode').click();
} else {
document.getElementById('RESSettingsButton').click();
var toggleFilter = function() {
document.getElementById('night mode').click();
};
setTimeout(toggleFilter, 50);
}
}
});
}());