JS常用方法

URL转码

  • encodeURI/decodeURI

阻止默认事件

  • event.preventDefault();

js 转义字符:

- \t    tab制表符
- \n    换行符    
- \r    回车符      
- \b    退格符

js获取鼠标位置

  • mousemove(e) e.pageX e.pagey

js深度克隆

  • js

      EA = {a:false};
      var tmp = JSON.stringify( EA );
      var ea = JSON.parse(tmp);
      ea.a = true;
      console.log(EA.a)
    
  • jquery

      EA = {a:true };
      var ea = $.extend({},EA);
      ea.a = false;
      console.log(EA.a)
    

Textarea Tab键和Shift+Tab键

$('textarea').keyup(function(event){
    var keyCode = event.keyCode;
    if(self.isCtrlDown && self.isVDown) {//Ctrl+V
        $('#wmd-input').val($('#wmd-input').val().replace(/\t/g,'    '));
    }
    if(keyCode == 16) {
        self.isShiftDown = false;
    } else if(keyCode == 17) {
        self.isCtrlDown = false;
    } else if(keyCode == 86) {
        self.isVDown = false;
    }
    
});
$('textarea').keydown(function(event){
    var $textarea = $(this);
    var keyCode = event.keyCode;
    if(keyCode == 16) {
        self.isShiftDown = true;
    } else if(keyCode == 17) {
        self.isCtrlDown = true;
    } else if(keyCode == 86) {
        self.isVDown = true;
    }
    if(keyCode == 9) {//Tab
        event.preventDefault();
        var startIndex = this.selectionStart;
        var endIndex = this.selectionEnd;
        var text = $textarea.val();
        var textSelection = text.substring(startIndex, endIndex);
        var tab = '    ';
        var isSingleLine = textSelection.indexOf('\n') == -1;
        if(!self.isShiftDown) {
            if(isSingleLine) {
                text = text.substr(0, startIndex) + tab + text.substr(endIndex);
                $textarea.val(text);
                this.selectionStart = startIndex + tab.length;
                this.selectionEnd = startIndex + tab.length;
            } else {
                textSelection = tab + textSelection.replace(/\n/g,'\n' + tab);
                text = text.substr(0, startIndex) + textSelection + text.substr(endIndex);
                $textarea.val(text);
                this.selectionStart = startIndex + tab.length;
                this.selectionEnd = startIndex + textSelection.length;
            }
            
        } else {
            if(isSingleLine) {
            } else {
                textSelection = textSelection.replace(/\n    /g,'\n');
                text = text.substr(0, startIndex - tab.length) + textSelection + text.substr(endIndex);
                $textarea.val(text);
                this.selectionStart = startIndex - tab.length;
                this.selectionEnd = startIndex - tab.length + textSelection.length;
            }
            
        }
    }
});

键盘keyCode大全

字母按键码

        A  :  65 B  :  66 C  :  67 D  :  68 
        E  :  69 F  :  70 G  :  71 H  :  72 
        I  :  73 J  :  74 K  :  75 L  :  76 
        M  :  77 N  :  78 O  :  79 P  :  80 
        Q  :  81 R  :  82 S  :  83 T  :  84 
        U  :  85 V  :  86 W  :  87 X  :  88 
        Y  :  89 Z  :  90 0  :  48 1  :  49
        2  :  50 3  :  51 4  :  52 5  :  53 
        6  :  54 7  :  55 8  :  56 9  :  57

数字按键码

乘号  :  106 加号  :  107 Enter  :  108 减号  :  109 
小数点  :  110 除号  :  111

其他按键码

乘号  :  106 加号  :  107 Enter  :  108 减号  :  109 
小数点  :  110 除号  :  111
F1  :  112 F2  :  113 F3  :  114 F4  :  115 
F5  :  116 F6  :  117 F7  :  118 F8  :  119 
F9  :  120 F10  :  121 F11  :  122 F12  :  123 
F13  :  124 F14  :  125 F15  :  126 
Backspace  :  8 
Tab  :  9 
Clear  :  12 
Enter  :  13 
Shift  :  16 
Control  :  17 
Alt  :  18 
Caps Lock  :  20 
Esc  :  27 
空格键  :  32 
Page Up  :  33 
Page Down  :  34 
End  :  35 
Home  :  36 
左箭头  :  37 
向上箭头  :  38 
右箭头  :  39 
向下箭头  :  40 
Insert  :  45 
Delete  :  46 
Help  :  47 
Num Lock  :  144 
; :  :  186 
= +  :  187 
- _  :  189 
/ ?  :  191 
` ~  :  192 
[ {  :  219 
|  :  220 
] }  :  221 
'' '  :  222