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());
}
持续更新中(欢迎各位提出需要的功能)...