JavaScript 常用方法总结

1、手机类型判断

var BrowserInfo = {
userAgent: navigator.userAgent.toLowerCase()
isAndroid: Boolean(navigator.userAgent.match(/android/ig)),
isIphone: Boolean(navigator.userAgent.match(/iphone|ipod/ig)),
isIpad: Boolean(navigator.userAgent.match(/ipad/ig)),
isWeixin: Boolean(navigator.userAgent.match(/MicroMessenger/ig)),
}

 

2、返回字符串长度,汉子计数为2

function strLength(str) {
var a = 0;
for (var i = 0; i < str.length; i++) {
  if (str.charCodeAt(i) > 255)
      a += 2;//按照预期计数增加2
  else
      a++;
}
return a;
}

 

3、

function GetQueryStringRegExp(name,url) {
var reg = new RegExp("(^|\?|&)" + name + "=([^&]*)(\s|&|$)", "i");
if (reg.test(url)) return decodeURIComponent(RegExp.$2.replace(/+/g, " ")); return "";


} 

 

4、js 绑定事件 适用于任何浏览器的元素绑定

function eventBind(obj, eventType, callBack) {
  if (obj.addEventListener) {
      obj.addEventListener(eventType, callBack, false);
  }
  else if (window.attachEvent) {
      obj.attachEvent('on' + eventType, callBack);
  }
  else {
      obj['on' + eventType] = callBack;
  }
};
eventBind(document, 'click', bodyClick);

 

5、获得当前浏览器JS的版本

function getjsversion(){
var n = navigator;
var u = n.userAgent;
var apn = n.appName;
var v = n.appVersion;
var ie = v.indexOf('MSIE ');
if (ie > 0){
  apv = parseInt(i = v.substring(ie + 5));
  if (apv > 3) {
      apv = parseFloat(i);
  }
} else {
  apv = parseFloat(v);
}
var isie = (apn == 'Microsoft Internet Explorer');
var ismac = (u.indexOf('Mac') >= 0);
var javascriptVersion = "1.0";
if (String && String.prototype) {
  javascriptVersion = '1.1';
  if (javascriptVersion.match) {
      javascriptVersion = '1.2';
      var tm = new Date;
      if (tm.setUTCDate) {
          javascriptVersion = '1.3';
          if (isie && ismac && apv >= 5) javascriptVersion = '1.4';
          var pn = 0;
          if (pn.toPrecision) {
              javascriptVersion = '1.5';
              a = new Array;
              if (a.forEach) {
                  javascriptVersion = '1.6';
                  i = 0;
                  o = new Object;
                  tcf = new Function('o', 'var e,i=0;try{i=new Iterator(o)}catch(e){}return i');
                  i = tcf(o);
                  if (i && i.next) {
                      javascriptVersion = '1.7';
                  }
              }
          }
      }
  }
}
return javascriptVersion;
}  

 

6、获取当前点击事件的Object对象

function getEvent() {
if (document.all) {
   return window.event; //如果是ie
}
func = getEvent.caller;
while (func != null) {
   var arg0 = func.arguments[0];
   if (arg0) {
       if ((arg0.constructor == Event || arg0.constructor == MouseEvent)
|| (typeof (arg0) == "object" && arg0.preventDefault && arg0.stopPropagation)) {
           return arg0;
       }
   }
   func = func.caller;
}
return null;
}; 

 

7、字符串截取方法

getCharactersLen: function (charStr, cutCount) {
   if (charStr == null || charStr == '') return '';
   var totalCount = 0;
   var newStr = '';
   for (var i = 0; i < charStr.length; i++) {
       var c = charStr.charCodeAt(i);
       if (c < 255 && c > 0) {
           totalCount++;
       } else {
           totalCount += 2;
       }
       if (totalCount >= cutCount) {
           newStr += charStr.charAt(i);
           break;
       }
       else {
           newStr += charStr.charAt(i);
       }
   }
   return newStr;
}  

 

8、JS 弹出新窗口全屏

var tmp = window.open("about:blank", "", "fullscreen=1")
tmp.moveTo(0, 0);
tmp.resizeTo(screen.width + 20, screen.height);
tmp.focus();
tmp.location.href = 'http://www.che168.com/pinggu/eva_' + msgResult.message[0] + '.html';

var config_ = "left=0,top=0,width=" + (window.screen.Width) + ",height=" + (window.screen.Height);
                       window.open('http://www.che168.com/pinggu/eva_' + msgResult.message[0] + '.html', "winHanle", config_);
//模拟form提交打开新页面
var f = document.createElement("form");
f.setAttribute('action', 'http://www.che168.com/pinggu/eva_' + msgResult.message[0] + '.html');
f.target = '_blank';
document.body.appendChild(f);
f.submit(); 

 

9、全选/全不选

function selectAll(objSelect) {
   if (objSelect.checked == true) {
       $("input[name='chkId']").attr("checked", true);
       $("input[name='chkAll']").attr("checked", true);
   }else if (objSelect.checked == false) {
       $("input[name='chkId']").attr("checked", false);
        $("input[name='chkAll']").attr("checked", false);
    }
}

 

10、移除事件

this.moveBind = function (objId, eventType, callBack) {
var obj = document.getElementById(objId);
if (obj.removeEventListener) {
   obj.removeEventListener(eventType, callBack, false);
}
else if (window.detachEvent) {
   obj.detachEvent('on' + eventType, callBack);
}
else {
   obj['on' + eventType] = null;
}
}

 

11、JS 写Cookie

function setCookie(name, value, expires, path, domain) {
if (!expires) expires = -1;
if (!path) path = "/";
var d = "" + name + "=" + value;
var e;
if (expires < 0) {
   e = "";
}
else if (expires == 0) {
   var f = new Date(1970, 1, 1);
   e = ";expires=" + f.toUTCString();
}
else {
   var now = new Date();
   var f = new Date(now.getTime() + expires * 1000);
   e = ";expires=" + f.toUTCString();
}
var dm;
if (!domain) {
   dm = "";
}
else {
   dm = ";domain=" + domain;
}
document.cookie = name + "=" + value + ";path=" + path + e + dm;
}; 

 

12、Ajax 请求 

 1 C.ajax = function (args) {
 2 var self = this;
 3 this.options = {
 4    type: 'GET',
 5    async: true,
 6    contentType: 'application/x-www-form-urlencoded',
 7    url: 'about:blank',
 8    data: null,
 9    success: {},
10    error: {}
11 };
12 this.getXmlHttp = function () {
13    var xmlHttp;
14    try {
15        xmlhttp = new XMLHttpRequest();
16    }
17    catch (e) {
18        try {
19            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
20        }
21        catch (e) {
22            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
23        }
24    }
25    if (!xmlhttp) {
26        alert('您的浏览器不支持AJAX');
27        return false;
28    }
29    return xmlhttp;
30 };
31 this.send = function () {
32    C.each(self.options, function (key, val) {
33        self.options[key] = (args[key] == null) ? val : args[key];
34    });
35 
36    var xmlHttp = new self.getXmlHttp();
37    if (self.options.type.toUpperCase() == 'GET') {
38        xmlHttp.open(self.options.type, self.options.url + (self.options.data == null ? "" : ((/[?]$/.test(self.options.url) ? '&' : '?') + self.options.data)), self.options.async);
39    }
40    else {
41        xmlHttp.open(self.options.type, self.options.url, self.options.async);
42        xmlHttp.setRequestHeader('Content-Length', self.options.data.length);
43    }
44    xmlHttp.setRequestHeader('Content-Type', self.options.contentType);
45    xmlHttp.onreadystatechange = function () {
46        if (xmlHttp.readyState == 4) {
47            if (xmlHttp.status == 200 || xmlHttp.status == 0) {
48                if (typeof self.options.success == 'function') self.options.success(xmlHttp.responseText);
49                xmlHttp = null;
50            }
51            else {
52                if (typeof self.options.error == 'function') self.options.error('Server Status: ' + xmlHttp.status);
53            }
54        }
55    };
56 
57    xmlHttp.send(self.options.type.toUpperCase() == 'POST' ? self.options.data.toString() : null);
58 };
59 this.send();
60 };  

 

posted @ 2017-07-17 10:53  TrendY  阅读(239)  评论(0编辑  收藏  举报