JavaScript 常用的小功能集合

1. 得到当前用户使用的浏览器的内核版本

function getExplorer(){  
   var browser = "";
var explorer = window.navigator.userAgent;
if (explorer.indexOf("MSIE") >= 0) { // ie10及以下
var b_version = navigator.appVersion;
var version = b_version.split(";");
version = version[1].replace(/[ ]/g, "");
version = version.split('MSIE')[1];
browser = 'IE:' + version;
} else if (explorer.indexOf("Firefox") >= 0) { // Firefox
browser = 'Firefox';
} else if (explorer.indexOf("Chrome") >= 0) { // Chrome
browser = 'Chrome';
} else if (explorer.indexOf("Opera") >= 0) { // Opera
browser = 'Opera';
} else if (explorer.indexOf("Safari") >= 0) { // Safari
browser = 'Safari';
} else if (explorer.indexOf("Trident/7.0") >= 0) { // IE11
browser = 'IE:10.0以上';
}
return browser;
}

2. 禁止鼠标右键操作

function click() {
if(event.button == 2 || event.button == 3) {
alert("禁止鼠标右键操作");
}
}
document.onmousedown = click;

3. 关闭当前窗口

function closeWin() {
window.close();
return false;
}

4. 打印当前页面

function printWin() {
window.print();
}

5. 获取 URL 中传递的参数

function getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) {
return unescape(r[2]);
}
return null;
}

6. 时间格式转换

/**
* 时间转换
* @param {Object} fmt
*/
Date.prototype.Format = function(fmt) {
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"H+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if(/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for(var k in o) {
if(new RegExp("(" + k + ")").test(fmt)) {
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
}
}
return fmt;
} 用法:
new Date().Format("yyyy-MM-dd HH:mm:ss") ==> 2017-12-31 18:23:12

7. 删除数组中的某一个数据

var arr = ['a', 'b', 'c', 'd', 'e'];
console.log("1-->" + arr);
arr.splice(2, 1);
console.log("2-->" + arr) 输出:
1-->a,b,c,d,e
2-->a,b,d,e

8. 转义字符转换为普通字符

/**
* 转意符换成普通字符
* @param {Object} str
*/
function escape2Html(str) {
var arrEntities = {
'lt':'<',
'gt':'>',
'nbsp':' ',
'amp':'&',
'quot':'"'
};
return str.replace(/&(lt|gt|nbsp|amp|quot);/ig, function(all, t) {
return arrEntities[t];
});
}

9. js 对数组进行中文排序

/**
* js 中文排序
* @param {Object} param1
* @param {Object} param2
*/
function compareFunction(param1, param2) {
param1 = param1.name;
param2 = param2.name;
return param1.localeCompare(param2, "zh");
} 用法:
dataArray为一个数组
dataArray.sort(compareFunction);

10. css 实现表格 table 两点之间添加斜线

background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%"><line x1="0" y1="0" x2="100%" y2="100%" stroke="black" stroke-width="1"/></svg>');

11. DIV 实现类似 INPUT 的编辑操作

<div contenteditable="true"></div>

监听 DIV 中的值改变:
<div contenteditable="true" oninput="onDivChange(this);"></div>

function onDivChange(elem) {
  console.log($(elem).text());
}

 

持续更新中(欢迎各位提出需要的功能)...

上一篇:开发时Blocks跟Delegates如何选择----董鑫


下一篇:企业开发中选择logback而不是log4j的理由