• 前端分享学习博客,探究前端相关技术,推动天朝前端发展,有任何问题都可以留言一起探究
  • 由于站内自链接问题,部分pre中的代码首字母使用大写以过滤筛选
  • 欢迎友链互换,还有,如果有大神请不要黑我的站点(o´・ェ・`o)
  • 如果你觉得博客还不错,请Ctrl+D收藏( *︾▽︾)

Js方法集

收集一些常用方法,思之补之踩过的坑;

 

判定浏览器是否为移动端,然后to do something:

$(function isMobileBrowser()
{
    var sUserAgent = navigator.userAgent.toLowerCase();    
    var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";    
    var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";    
    var bIsMidp = sUserAgent.match(/midp/i) == "midp";    
    var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";    
    var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";    
    var bIsAndroid = sUserAgent.match(/android/i) == "android";    
    var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";    
    var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";    
    if (bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM ){    
        return true;
    }else 
	    return false;
})()

曾经的错误…,js可以获取上一个访问的页面,可用于多个场景,并且刷新页面此值不变:

document.referrer

js中计算一些带小数的数字会得出小数点非常长的现象例如2.01-1.02=0.9899999999999998,因为js中是将数字转成二进制进行计算然后再转成数字:

var ComputAmount = function(arg1, arg2, computType) {
	var r1, r2, m;
	try {
		r1 = arg1.toString().split(".")[1].length
	} catch(e) {
		r1 = 0
	}
	try {
		r2 = arg2.toString().split(".")[1].length
	} catch(e) {
		r2 = 0
	}
	m = Math.pow(10, Math.max(r1, r2))
	if(computType == 1) {
		return((arg1 * m + arg2 * m) / m).toFixed(2);
	} else {
		return((arg1 * m - arg2 * m) / m).toFixed(2);
	}
}

三个参数,第一个数字,第二个数字,第三个是加减的参数,改动可以用于乘除;

 

判断url是否存在某search参数,稍改动可获取某search参数的值:

function giveQuery(p) {
	var httppath = "www.baidu.com?a=b&c=d",
		httppath = httppath.substring(13); //?a=b&c=d  此处可优化
	//var httppath=location.search; //?a=b&c=d
	search = httppath.length > 0 ? httppath.substring(1) : "", //a=b&c=d
		items = search.length > 0 ? search.split("&") : [], //["a=b", "c=d"]
		item = null,
		t = false,
		len = items.length; //2

	for(i = 0; i < len; i++) {
		item = items[i].split("=");
		if(item[0] == p) {
			console.log(item[1]);
			t = true;
		}
	}
	if(!t) {
		console.log("search is null")
	}
}

 

读取Cookie值:

var getCookie = function(name) {
	var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");

	if(arr = document.cookie.match(reg))
		return unescape(arr[2]);
	else
		return null;
};

浏览器居中显示提示消息,移动端应用的多些:

var alertMsg = function(text) {
	//拼接div 或者display div 
	//class=alertBg 设置透明蒙版等
	$("body").append('<div class="alertBg" id="alertMsg">' + text + '</div>');

	var $height = $("#alertMsg").outerHeight() / 2,
		$width = $("#alertMsg").outerWidth() / 2;

	$("#alertMsg").css({
		marginLeft: -$width,
		marginTop: -$height
	});

	$("#alertMsg").show().fadeOut(3000, function() {
		$(this).remove();
	});
}

旧版浏览器(IE678)提示:

var isIE7older = document.all && !document.querySelector,
isIE8older = document.all && document.querySelector && !document.addEventListener;
if(isIE7older || isIE8older) {
	doSomeThing()
}

薛陈磊的博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Js方法集
喜欢 (9)
[905044086@qq.com]
分享 (0)
作者薛陈磊
关于作者:
非著名前端工程师,关注Html5、Css3、Javascript、Node.js和各种前端框架发展,学习管理技巧和团队建设方法,期待遇到更多前端小伙伴一起学习进步;
说点什么...
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
  1. 学习了
    芒果2017-04-07 10:46 回复 Windows 10 | Maxthon 4.9.3.1000