js_util - xiaojiandong/blogAndResourceCollect GitHub Wiki
// 提取一些公共的工具类 ,requirejs
define(['jquery'] , function(jquery){
return SUBJ = {
getValueFromUrlByKey:function(name){ // 通过url的key值,返回对应的value
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)","i");
var r = window.location.search.substr(1).match(reg);
if (r!=null) return decodeURI((r[2])); return null;
},
testData : '1000测试数据',
getSomeValue : function(){
alert('返回一个方法getSomeValue');
},
hasSpecailStrFromLongStr : function(longStr,specailStr){ // 通过长str,获取指定的str,返回boolean
if(longStr.indexOf(specailStr) > 0){ // 存在指定的str
return true;
}else{ // 不存在
return false;
}
},
// 原始长longStr;指定str;index - (0:之前,1:之后)
getBeforeOrAfterStr = function(longStr,str,index){ // 截取指定字符串前后的字符串
var str_before = longStr.split(str)[0];
var str_after = longStr.split(str)[1];
//alert('前:'+str_before+' - 后:'+str_after);
if(index == 0){ // 截取str之前的
return str_before;
}else{ // 截取str之后的
return str_after;
}
},
// 截取url的key-value值
getValueFromHrefByKey1 : function(key){
//测试数据,实际情况是用window.location.href得到URL
var sHref = window.location.href;
//取出不带#的URL
//sHref = sHref.split('#')[0]; //#之前
sHref = sHref.split('#')[1]; //#之后
var args = sHref.split("?");
var retval = "";
/*参数为空*/
if(args[0] == sHref){
return retval; /*无需做任何处理*/
}
var str = args[1];
args = str.split("&");
for(var i = 0; i < args.length; i++ ) {
str = args[i];
var arg = str.split("=");
if(arg.length <= 1) continue;
if(arg[0] == key) retval = arg[1];
}
//if(!retval){
// //alert('url中的' + key + '参数为空');
// console.log('url中的' + key + '参数为空');
//}
return retval;
}
};
// 用法1: var value = SUBJ.getValueFromUrlByKey('shareFriend');
/*
* 用法2:
* var longStr = '1254xiaojianBlog%*54'; // 完整的长str
* var specailStr = 'xiao'; // 指定的xiao
* if( SUBJ.hasSpecailStrFromLongStr(longStr,specailStr) ){ // 返回boolean
* console.log('是包含xiao这个字符串');
* }else{
* console.log('错误的');
* }
*/
/*
*用法3:
* var longStr = 'http://www.runoob.com/try/try.php?filename=bootstrap3-progressbar-striped';//原始字符串
* var str = '.php?'; // 指定字符串
* var bforeStr = SUBJ.getBeforeOrAfterStr(longStr,str,0);//0-之前,1-之后
* var afterStr = SUBJ.getBeforeOrAfterStr(longStr,str,1);
* console.log('1. 原始longStr : '+longStr);
* console.log('2. 指定str : '+str);
* console.log('2. 指定str之前的 : '+bforeStr);
* console.log('4. 指定str之后的 : '+afterStr);
*/
/*
*用法4:删除数组的指定元素
* var todos = ['a','b','c']
* todos.splice(index,1); // index=0,则删除第0个元素
*/
}); var endDay = new Date("May 28,2016 12:30:00"); // 获取 2016年5月28号 12点30分这个对象
var endSeconds = endDay.getTime(); //得到该对象的毫秒数 $scope.cutTimeBySeconds = function(data){
var SYS_SECONDS = parseInt(data.countdown); // 服务端返回的秒
var timer = setInterval(function(){
SYS_SECONDS --;
if( SYS_SECONDS >= 0 ){ // 正在倒计时
var day = Math.floor((SYS_SECONDS / 3600) / 24);
var hour = Math.floor((SYS_SECONDS / 3600) % 24);
var minute = Math.floor((SYS_SECONDS / 60) % 60);
var seconds = Math.floor(SYS_SECONDS % 60);
//console.log(day+'天'+hour+'时'+minute+'分'+seconds+'秒');
$('.js_cut_time_wrap').html(day+'天'+hour+'时'+minute+'分'+seconds+'秒');
}else{ // 倒计时结束
clearInterval(timer);
alert('倒计时结束,视图更换');
}
});
}; var arr = [5, 458 , 120 , -215 , 228 , 400 , 122205, -85411];
var maxInNumbers = Math.max.apply(Math, arr);
var minInNumbers = Math.min.apply(Math, arr);
console.log( 'maxInNumbers : ' + maxInNumbers ); // 122205
console.log( 'minInNumbers : ' + minInNumbers ); // -85411
var a = 8;
if(a > 10){
console.log('你输入的数是 : ' + a);
}else{
throw Error('这个数是错误的!'); // 在控制台中输出 Uncaught Error: 这个数是错误的!
}
var powNum = Math.pow(5,3); // 求5的3次方 // 1. js判断手机设备
var ua = navigator.userAgent.toLowerCase();
if (/iphone|ipad|ipod/.test(ua)) {
alert("iphone设备访问");
} else if (/android/.test(ua)) {
alert("android设备访问");
}
// 2. js判断访问当前页面的是微信还是其他渠道
var userApp = navigator.userAgent.toLowerCase();
if(userApp.indexOf('micromessenger/')>-1){ // 微信
var callbackurl = encodeURIComponent(window.location.href);
window.location.href = ym.user + '/api/wechat_auth?return_url=' + callbackurl;
}else{ // 非微信
$('body').append('<div class="wx_open_remind"><p><img src="/static/lib/images/icon/copy_btn.png" /></p>请复制此链接,在微信聊天窗口内打开</div>');
//<br/><input type="text" value="'+window.location.href+'" class="copy_input" />
document.body.addEventListener('touchmove', e.preventDefault(), false); // 禁止滚动
}var useScaledViewportMeta = function ( ) {
var phoneWidth = parseInt(window.screen.width);
var phoneScale = phoneWidth/640;
$('head').append('<meta name="viewport" content="width=640, user-scalable=no, target-densitydpi=device-dpi,minimum-scale='+phoneScale+',maximum-scale='+phoneScale+'">');
};
var ua = navigator.userAgent;
if (/Android (\d+\.\d+)/.test(ua)){
var version = parseFloat(RegExp.$1);
// andriod 2.3
if(version>2.3){
useScaledViewportMeta();
// andriod 2.3以上
}else{
$('head').append('<meta name="viewport" content="width=640, target-densitydpi=device-dpi">');
}
// 其他系统
} else {
useScaledViewportMeta();
}
/**
* 该方法用于将页面内全部元素包裹在 640宽度的div中,实现viewport缩放
*/
SIXE.Util.outerContainerWrapFn = function(){
var outerContainerWrap = "<div class='js_outer_container_wrap'></div>";
$( "body" ).wrapInner( outerContainerWrap);
$('.js_outer_container_wrap').css({
'width': '640px',
'margin': '0 auto',
//'background': 'pink',
'text-align': 'center',
'overflow': 'hidden'
});
};
SIXE.Util.outerContainerWrapFn();###工具类集合
//工具方法:
//https://github.com/xiaojiandong/JavaScriptNote/blob/master/vue/static/js/libs/common/SUBJ.Util.js
//登陆小组件:
//https://github.com/xiaojiandong/JavaScriptNote/blob/master/vue/static/js/libs/common/LoginUtil.js
// jquery获取checked的值
$('input[name="sex"]:checked').val();
// jquery设置某个值为checked
$('input[value="男"]').attr('checked',true);
// jquery设置下拉框的某个值为checked
$("#js_job").find("option[value='董秘']").attr("selected",true);