CtrlChromeで+をキャッチSし、ページを保存するためのデフォルトのブラウザ動作を防ぎたい。どのように?
(私はかなり長い間この後だったので、質問と回答を投稿するだけで、解決策が見つかりませんでした)
CtrlChromeで+をキャッチSし、ページを保存するためのデフォルトのブラウザ動作を防ぎたい。どのように?
(私はかなり長い間この後だったので、質問と回答を投稿するだけで、解決策が見つかりませんでした)
私が見る限り、秘密のソースは、Ctrl+Sはキープレスイベントを発生させず、キーダウンイベントのみを発生させるということです。
$(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は言う
入力要素の内部にいる場合、ホットキーは追跡されません(ホットキーを入力に直接明示的にバインドしない限り)。これは、通常のユーザー入力との競合を回避するのに役立ちます。
ブラウザのcontrol+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;
}
});