爱奇思

学习就是——从糊涂中慢慢走向清醒,然后再从清醒中慢慢走向糊涂,所以说我说它是一个O,只是圆的半径慢慢的扩大罢了!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

这几天做一个业务,需要一个快捷保存功能,用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]);
};

 

 最后 由于  整个项目用到了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;
        }
    });
};