Ctrl+S 防止 Chrome 中的默认值
Ctrl+S preventDefault in Chrome
我想在Chrome中捕获Ctrl + S,并阻止默认浏览器行为来保存页面。如何?
(只是发布问题和答案,因为我已经追了很长时间,没有找到解决方案)
据我所知,秘密武器是,Ctrl + S不会触发按键事件,只会触发键向下事件。
使用 jQuery.hotkeys:
$(document).bind('keydown', 'ctrl+s', function(e) {
e.preventDefault();
alert('Ctrl+S');
return false;
});
仅使用 jQuery:
$(document).bind('keydown', function(e) {
if(e.ctrlKey && (e.which == 83)) {
e.preventDefault();
alert('Ctrl+S');
return false;
}
});
编辑 2012.12.17 - jQuery.hotkeys 说
如果您在输入元素内,则不会跟踪热键(除非您 将热键直接显式绑定到输入)。这有助于避免 与正常用户键入冲突。
"借用" 在浏览器中覆盖控件+s(保存功能)
document.addEventListener("keydown", function(e) {
if (e.key === 's' && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey)) {
e.preventDefault();
alert('captured');
}
}, false);
document.onkeydown = function (e) {
e = e || window.event;//Get event
if (e.ctrlKey) {
var c = e.which || e.keyCode;//Get key code
switch (c) {
case 83://Block Ctrl+S
e.preventDefault();
e.stopPropagation();
break;
}
}
};
多合一解决方案可防止数据
// disable right click
$(function() {
$(this).bind("contextmenu", function(e) {
e.preventDefault();
});
});
// Prevent F12
$(document).keydown(function (event) {
if (event.keyCode == 123) { // Prevent F12
return false;
} else if (event.ctrlKey && event.shiftKey && event.keyCode == 73) { // Prevent Ctrl+Shift+I
return false;
}
});
//stop copy of content
function killCopy(e){
return false
}
function reEnable(){
return true
}
document.onselectstart=new Function ("return false")
if (window.sidebar){
document.onmousedown=killCopy
document.onclick=reEnable
}
// prevent ctrl + s
$(document).bind('keydown', function(e) {
if(e.ctrlKey && (e.which == 83)) {
e.preventDefault();
return false;
}
});
相关文章:
- 我的shareService在angular 2中发送值工作正常,但当我渲染我的另一个组件时,会获得默认值
- jquerydatetimepicker日期和时间应在框默认值中,而无需单击框
- 如果值为空,如何设置输入的默认值?jQuery
- 骨干模型默认值-todos.js示例中不必要的代码
- jquery日期选择器年份范围默认值
- Html5输入属性的默认值,如最小值、最大值、大小等
- 根据两个下拉列表的默认值禁用按钮
- 如何创建具有默认值的JavaScript对象字段?(AngularJS模型相关)
- Angularjs-设置不带ng选项的select的默认值
- jQuery Datepicker从日期开始设置默认值
- 如何设置浏览器打开的文件对话框的文件名(一些默认值)
- JQuery BlockUI鼠标加载光标没有't在Google Chrome中返回默认值
- Selectize选择默认值
- 在KeystoneJS中为Types.Money设置默认值
- 是否可以同时为一个元素的所有事件指定阻止默认值
- 防止在IE7中按回车键时出现默认值
- 如何覆盖jqGrid's语言默认值
- 如何为显示jquery滑块值的文本框设置默认值
- 当数组在angularjs中没有可比较的值时,如何分配默认值
- Ctrl+S 防止 Chrome 中的默认值