覆盖功能键默认操作在Chrome
Overwriting function key default action in Chrome
我正在Chrome中构建一个web应用程序,我需要一些快捷键,并希望使用功能键。
但是,F1触发帮助窗口,F3触发页面搜索,F5刷新等等。我想取消这些键,因为它们在我的上下文中没有用处。
但是…我无法阻止默认值被触发。下面是我的代码:
$(document).keyup(function(e) {
// GET KEYCODE
var keyCode = e.keyCode; //alert(keyCode);
// CHECK KEYBOARD CONTEXT
var keyboardContext = $('#keyboard-context').attr('data-context');
// JS KEYCODES FOR FUNCTION KEYS
var functionKeys = new Array(112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123);
var keyNames = new Array('F1', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9', 'F10', 'F11', 'F12');
// CONVERT KEYCODE INTO KEYNAME, FOR EASE OF BINDING IN DOM
for (var i = 0; i < functionKeys.length; i++) { if (functionKeys[i] === keyCode) { keyCode = keyNames[i]; } }
// MAKE SURE THAT THE QUICK LAUNCH SHORTCUT KEY, ALWAYS LAUNCHES THE QUICKNAV
if (keyCode === 'F1') {
$('.keyboard-shortcut').each(function() {
if ($(this).data('shortcut-key') === keyCode && $(this).hasClass('load-small-content') && $(this).attr('data-keyboard-context') === 'launch-quick-nav') {
loadSmallContent($(this).data('load-from'));
}
});
}
// PREVENT DEFAULT FOR FUNCTION KEYS
if (functionKeys.indexOf(keyCode) > -1) {
e.preventDefault();
e.stopPropagation();
return false;
}
});
我能做些什么来阻止例如F1打开帮助页面?
我想出了一个解决办法。下面的代码应该包含在.js文件的任何地方…
function disableFunctionKeys(e) {
var functionKeys = new Array(112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 123);
if (functionKeys.indexOf(e.keyCode) > -1 || functionKeys.indexOf(e.which) > -1) {
e.preventDefault();
}
};
$(document).ready(function() {
$(document).on('keydown', disableFunctionKeys);
});
为了防止f键之外的其他键,只需将JS keycode放入数组中:)
相关文章:
- 阻止chrome.webRequest.onBeforeSendHeaders侦听器中的异步操作
- Jquery-Regex按键操作在Chrome和Firefox中有所不同
- 要将 Chrome 扩展程序更改为 manifest_version 2,需要执行哪些操作?我的扩展程序只是在弹出窗口中
- Chrome扩展程序:浏览器操作单击按钮工作一次
- 如何操作谷歌chrome's PRINT选项
- Chrome扩展:弹出操作网站上的文本框
- chrome扩展插件在浏览器操作中插入内容脚本
- 将Mixpanel与chrome扩展集成(无需浏览器操作)
- 如何在chrome中使用jquery操作剪贴板数据,IE 8&9
- 如何在chrome扩展中插入通知操作按钮
- 浏览器启动时的 Chrome 扩展程序操作
- Chrome 撤消“阻止此页面创建其他对话框”的操作
- 未显示 Chrome 扩展程序浏览器操作
- 每次点击网页操作按钮时,Chrome 扩展程序都不会运行
- 将 chrome API 操作封装到函数中
- 当用户单击浏览器操作并出现弹出窗口(Chrome 扩展程序)时,如何执行操作
- 如果没有来自chrome.tabs.query的结果,请执行某些操作
- 弹出窗口和浏览器操作窗口之间的chrome.storage
- 将光标悬停在电子邮件地址上的 Chrome 扩展程序操作
- Chrome 扩展程序 - 针对特定网页的网页操作