经常使用的 js 方法,今天记下,以便以后查询
/* 手机类型判断 */
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 */
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;
}
获取url中的参数
function getquerystringregexp(name,url) {
var reg = new regexp("(^|\\?|&)" + name + "=([^&]*)(\\s|&|$)", "i");
if (reg.test(url)) return decodeuricomponent(regexp.$2.replace(/\+/g, " ")); return "";
}
/* 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);
/* 获得当前浏览器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;
}
/* 获取当前点击事件的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;
};
/* 字符串截取方法 */
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;
}
/* 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();
/* 全选/全不选 */
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);
}
}
/* js 判断浏览器 */
判断是否是 ie 浏览器
if (document.all){
alert(”ie浏览器”);
}else{
alert(”非ie浏览器”);
}
if (!!window.activexobject){
alert(”ie浏览器”);
}else{
alert(”非ie浏览器”);
}
判断是ie几
var isie=!!window.activexobject;
var isie6=isie&&!window.xmlhttprequest;
var isie8=isie&&!!document.documentmode;
var isie7=isie&&!isie6&&!isie8;
if (isie){
if (isie6){
alert(”ie6″);
}else if (isie8){
alert(”ie8″);
}else if (isie7){
alert(”ie7″);
}
}
/* 判断浏览器 */
function getos() {
if (navigator.useragent.indexof("msie 8.0") > 0) {
return "msie8";
}
else if (navigator.useragent.indexof("msie 6.0") > 0) {
return "msie6";
}
else if (navigator.useragent.indexof("msie 7.0") > 0) {
return "msie7";
}
else if (isfirefox = navigator.useragent.indexof("firefox") > 0) {
return "firefox";
}
if (navigator.useragent.indexof("chrome") > 0) {
return "chrome";
}
else {
return "other";
}
}
/* js判断两个日期大小 适合 2012-09-09 与2012-9-9 两种格式的对比 */
//得到日期值并转化成日期格式,replace(/\-/g, "\/")是根据验证表达式把日期转化成长日期格式,这样再进行判断就好判断了
function validatedate() {
var begindate = $("#t_datestart").val();
var enddate = $("#t_dateend").val();
if (begindate.length > 0 && enddate.length>0) {
var sdate = new date(begindate.replace(/\-/g, "\/"));
var edate= new date(enddate.replace(/\-/g, "\/"));
if (sdate > edate) {
alert('开始日期要小于结束日期');
return false;
}
}
}
/* 移除事件 */
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;
}
}
/* 回车提交 */
$("id").onkeypress = function (event) {
event = (event) ? event : ((window.event) ? window.event : "")
keycode = event.keycode ? event.keycode : (event.which ? event.which : event.charcode);
if (keycode == 13) {
$("submitlogin").onclick();
}
}
/* js 执行计时器 */
timestart = new date().gettime();
timesend = new date().gettime();
document.getelementbyid("time").innerhtml = timesend - timestart;
/* 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;
};
/* js 读cookie */
function readcookie(name) {
var nameeq = name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charat(0) == ' ') c = c.substring(1, c.length);
if (c.indexof(nameeq) == 0) {
return decodeuricomponent(c.substring(nameeq.length, c.length))
}
} return null
}
/* ajax 请求 */
c.ajax = function (args) {
var self = this;
this.options = {
type: 'get',
async: true,
contenttype: 'application/x-www-form-urlencoded',
url: 'about:blank',
data: null,
success: {},
error: {}
};
this.getxmlhttp = function () {
var xmlhttp;
try {
xmlhttp = new xmlhttprequest();
}
catch (e) {
try {
xmlhttp = new activexobject("msxml2.xmlhttp");
}
catch (e) {
xmlhttp = new activexobject("microsoft.xmlhttp");
}
}
if (!xmlhttp) {
alert('您的浏览器不支持ajax');
return false;
}
return xmlhttp;
};
this.send = function () {
c.each(self.options, function (key, val) {
self.options[key] = (args[key] == null) ? val : args[key];
});
var xmlhttp = new self.getxmlhttp();
if (self.options.type.touppercase() == 'get') {
xmlhttp.open(self.options.type, self.options.url + (self.options.data == null ? "" : ((/[?]$/.test(self.options.url) ? '&' : '?') + self.options.data)), self.options.async);
}
else {
xmlhttp.open(self.options.type, self.options.url, self.options.async);
xmlhttp.setrequestheader('content-length', self.options.data.length);
}
xmlhttp.setrequestheader('content-type', self.options.contenttype);
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readystate == 4) {
if (xmlhttp.status == 200 || xmlhttp.status == 0) {
if (typeof self.options.success == 'function') self.options.success(xmlhttp.responsetext);
xmlhttp = null;
}
else {
if (typeof self.options.error == 'function') self.options.error('server status: ' + xmlhttp.status);
}
}
};
xmlhttp.send(self.options.type.touppercase() == 'post' ? self.options.data.tostring() : null);
};
this.send();
};
/* js stringbuilder 用法 */
function stringbuilder() {
this.strings = new array;
};
stringbuilder.prototype.append = function (str) {
this.strings.push(str);
};
stringbuilder.prototype.tostring = function () {
return this.strings.join('');
};
/* js 加载到顶部loadjs */
function loadjs (url, fn) {
var ss = document.getelementsbyname('script'),
loaded = false;
for (var i = 0, len = ss.length; i < len; i++) {
if (ss[i].src && ss[i].getattribute('src') == url) {
loaded = true;
break;
}
}
if (loaded) {
if (fn && typeof fn != 'undefined' && fn instanceof function) fn();
return false;
}
var s = document.createelement('script'),
b = false;
s.setattribute('type', 'text/javascript');
s.setattribute('src', url);
s.onload = s.onreadystatechange = function () {
if (!b && (!this.readystate || this.readystate == 'loaded' || this.readystate == 'complete')) {
b = true;
if (fn && typeof fn != 'undefined' && fn instanceof function) fn();
}
};
document.getelementsbytagname('head')[0].appendchild(s);
},
bind: function (objid, eventtype, callback) { //适用于任何浏览器的绑定
var obj = document.getelementbyid(objid);
if (obj.addeventlistener) {
obj.addeventlistener(eventtype, callback, false);
}
else if (window.attachevent) {
obj.attachevent('on' + eventtype, callback);
}
else {
obj['on' + eventtype] = callback;
}
}
function jsload (args) {
s = document.createelement("script");
s.setattribute("type", "text/javascript");
s.setattribute("src", args.url);
s.onload = s.onreadystatechange = function () {
if (!s.readystate || s.readystate == "loaded" || s.readystate == "complete") {
if (typeof args.callback == "function") args.callback(this, args);
s.onload = s.onreadystatechange = null;
try {
s.parentnode && s.parentnode.removechild(s);
} catch (e) { }
}
};
document.getelementsbytagname("head")[0].appendchild(s);
}
/* 清空 loadjs 加载到顶部的js引用 */
function clearheadjs (src) {
var js = document.getelementsbytagname('head')[0].children;
var obj = null;
for (var i = 0; i < js.length; i++) {
if (js[i].tagname.tolowercase() == "script" && js[i].attributes['src'].value.indexof(src) > 0) {
obj = js[i];
}
}
document.getelementsbytagname('head')[0].removechild(obj);
};
/* js 替换非法字符主要用在密码验证上出现的特殊字符 */
function urlencode(sstr) {
return escape(sstr).replace(/\+/g, '%2b').replace(/\"/g, '%22').replace(/\'/g, '%27').replace(/\//g, '%2f');
};
/* 按ctrl + entert 直接提交表单 */
document.body.onkeydown = function (evt) {
evt = evt ? evt : (window.event ? window.event : null);
if (13 == evt.keycode && evt.ctrlkey) {
evt.returnvalue = false;
evt.cancel = true;
postdata();
}
};
/* 获取当前时间 */
function getcurrentdate() {
var d = new date();
var y = d.getyear()+1900;
month = add_zero(d.getmonth() + 1),
days = add_zero(d.getdate()),
hours = add_zero(d.gethours());
minutes = add_zero(d.getminutes()),
seconds = add_zero(d.getseconds());
var str = y + '-' + month + '-' + days + ' ' + hours + ':' + minutes + ':' + seconds;
return str;
};
function add_zero(temp) {
if (temp < 10) return "0" + temp;
else return temp;
}
/* js 去掉空格方法: */
string.prototype.trim = function()
{ return this.replace(/(^\s*)|(\s*$)/g, ""); }
string.prototype.ltrim = function()
{return this.replace(/(^\s*)/g, "");}
string.prototype.rtrim = function()
{return this.replace(/(\s*$)/g, "");}
/* js 动态移除 head 里的 js 引用 */
this.clearheadjs = function (src) {
var js = document.getelementsbytagname('head')[0].children;
var obj = null;
for (var i = 0; i < js.length; i++) {
if (js[i].tagname.tolowercase() == "script" && js[i].attributes['src'].value.indexof(src) > 0) {
obj = js[i];
}
}
document.getelementsbytagname('head')[0].removechild(obj);
};
/* 整个ul 点击事件 加在ul里的onclick里 */
function createfrom(url, params) {
var f = document.createelement("form");
f.setattribute("action", url);
for (var i = 0; i < params.length; i++) {
var input = document.createelement("input");
input.setattribute("type", "hidden");
input.setattribute("name", params[i].paramname);
input.setattribute("value", params[i].paramvalue);
f.appendchild(input);
}
f.target = "_blank";
document.body.appendchild(f);
f.submit();
};
/* 判断浏览器使用的是哪个 js 版本 */
<script language="javascript">
var jsversion = 1.0;
</script>
<script language="javascript1.1">
jsversion = 1.1;
</script>
<script language="javascript1.2">
jsversion = 1.2;
</script>
<script language="javascript1.3">
jsversion = 1.3;
</script>
<script language="javascript1.4">
jsversion = 1.4;
</script>
<script language="javascript1.5">
jsversion = 1.5;
</script>
<script language="javascript1.6">
jsversion = 1.6;
</script>
<script language="javascript1.7">
jsversion = 1.7;
</script>
<script language="javascript1.8">
jsversion = 1.8;
</script>
<script language="javascript1.9">
jsversion = 1.9;
</script>
<script language="javascript2.0">
jsversion = 2.0;
</script>
alert(jsversion);
更多javascript 常用方法总结。