这几天做一个业务,需要一个快捷保存功能,用ajax实现 当用户点击ctrl+s时保存修改(不过最后实现,有不友好的地方,下面注释里面有讲,希望知道的朋友,补充一下)
本来我没有用Jquery的实现是:
代码
var _d=document;
var ctrlKey=function(key,callback,args){
_d.onkeydown=function(e){
e=e||window.event;
key=key.toUpperCase();
if(e.ctrlKey&&e.keyCode==key.charCodeAt(0)){
callback.apply(this,args||[]);
return false;
}
};
};
/*
*有debug 在moz,opera中会调出保存窗口。希望知道的朋友 补充一下
*希望最后能达到,我设ctrl+s那么,避免上面debug的同时,在ctrl+V,ctrl+F等浏览器快捷键时分别执行浏览器该做的事情
*/
window.onload=function(){
//document.execCommand("saveAs");//ie 调出另存为窗口
var s=new Array();
s[0]="123";
s[1]="xxx";
ctrlKey("S",function(e){alert(e);},[s]);
};
var ctrlKey=function(key,callback,args){
_d.onkeydown=function(e){
e=e||window.event;
key=key.toUpperCase();
if(e.ctrlKey&&e.keyCode==key.charCodeAt(0)){
callback.apply(this,args||[]);
return false;
}
};
};
/*
*有debug 在moz,opera中会调出保存窗口。希望知道的朋友 补充一下
*希望最后能达到,我设ctrl+s那么,避免上面debug的同时,在ctrl+V,ctrl+F等浏览器快捷键时分别执行浏览器该做的事情
*/
window.onload=function(){
//document.execCommand("saveAs");//ie 调出另存为窗口
var s=new Array();
s[0]="123";
s[1]="xxx";
ctrlKey("S",function(e){alert(e);},[s]);
};
最后 由于 整个项目用到了Jquery然后就用Jquery实现了一下:
代码
$.ctrl=$.ctrl = function(key, callback, args) {
$(document).keydown(function(e) {
key=key.toUpperCase();
if(e.keyCode == key.charCodeAt(0) && e.ctrlKey) {
callback.apply(this, args||[]);
return false;
}
});
};
$(document).keydown(function(e) {
key=key.toUpperCase();
if(e.keyCode == key.charCodeAt(0) && e.ctrlKey) {
callback.apply(this, args||[]);
return false;
}
});
};
转载无需注明出处,多多交流 ,欢迎访问我的博客:http://www.cnblogs.com/niuniu