/** iwb_admin-v1.1.0 MIT License By http://www.iwbnet.com e-mail:yueyy@iwbnet.com */ ;/** * Name:utils.js * Author:Van * E-mail:yueyy@iwbnet.com * Website:http://www.iwbnet.com * LICENSE:MIT */ layui.define(['layer'], function (exports) { var $ = layui.jquery, layer = layui.layer, modName = 'utils'; var utils = { v: '1.0.3', /** * 根据一个html内容读取出body标签里的文本 */ getBodyContent: function (content) { var regBody = /]*>([\s\S]*)<\/body>/, result = regBody.exec(content); if (result && result.length === 2) return result[1]; return content; }, /** * 读取html字符串 */ loadHtml: function (url, callback) { var result; $.ajax({ url: url, async: false, dataType: 'html', beforeSend: function (request) { request.setRequestHeader("IsGetHtml", 'true'); }, error: function (xhr, err, msg) { var m = ['
', '

{{msg}} >>> ' + url + '

', '
' ].join(''); if (xhr.status === 404) { result = m.replace('{{msg}}', ' ' + msg); return; } result = m.replace('{{msg}}', ' 未知错误.'); }, success: function (res) { result = res; }, complete: function () { typeof callback === 'function' && callback(); } }); return result; }, /** * 加载等待层 */ load: function (type) { type = type || 0; return layer.load(type, { shade: [0.3, '#333'] }); }, /** * ajax post */ post: function (url, params, callback, options) { var defaults = { error: function (xhr, err, msg) { console.log('发生错误了..'); console.log(xhr); console.log(err); console.log(msg); }, complete: function (xhr, statusCode) { console.log('complete.' + statusCode); } }; $.extend(true, defaults, options); $.ajax({ url: url, beforeSend: function (request) { request.setRequestHeader("IsAjax", 'true'); }, dataType: 'json', method: 'POST', data: params, error: function (xhr, err, msg) { defaults.error(xhr, err, msg); }, success: function (res) { if (res.code === 101) { layer.alert(res.msg, { icon: 2, title: '系统提示', cancel: function (index, layero) { top.location.href = location.origin + '/Account/Login'; } }, function () { top.location.href = location.origin + '/Account/Login'; }); } else { callback(res); } }, complete: function (xhr, statusCode) { defaults.complete(xhr, statusCode); } }); }, /** * ajax get */ get: function (url, params, callback, options) { var defaults = { error: function (xhr, err, msg) { console.log('发生错误了..'); console.log(xhr); console.log(err); console.log(msg); }, complete: function (xhr, statusCode) { console.log('complete.' + statusCode); } }; $.extend(true, defaults, options); $.ajax({ url: url, beforeSend: function (request) { request.setRequestHeader("IsAjax", 'true'); }, dataType: 'json', method: 'GET', data: params, error: function (xhr, err, msg) { defaults.error(xhr, err, msg); }, success: function (res) { if (res.code === 101) { layer.alert(res.msg, { icon: 2, title: '系统提示', cancel: function () { top.location.href = location.origin + '/Account/Login'; } }, function () { top.location.href = location.origin + '/Account/Login'; }); } else { callback(res); } }, complete: function (xhr, statusCode) { defaults.complete(xhr, statusCode); } }); }, keyWordHighlight: function (o, flag, rndColor, url) { /// /// 使用 javascript HTML DOM 高亮显示页面特定字词. /// 实例: /// keyWordHighlight(document.body, '纸伞|她'); /// 这里的body是指高亮body里面的内容。 /// keyWordHighlight(document.body, '希望|愁怨', false, '/'); /// keyWordHighlight(document.getElementById('at_main'), '独自|飘过|悠长', true, 'search.asp?keyword='); /// 这里的'at_main'是指高亮id='at_main'的div里面的内容。search.asp?keyword=指给关键字加的链接地址, /// 我这里加了一个参数,在后面要用到。可以是任意的地址。 /// /// /// 对象, 要进行高亮显示的对象. /// /// /// 字符串, 要进行高亮的词或多个词, 使用 竖杠(|) 分隔多个词 . /// /// /// 布尔值, 是否随机显示文字背景色与文字颜色, true 表示随机显示. /// /// /// URI, 是否对高亮的词添加链接. /// /// var fgCor; var bgCor = fgCor = ''; if (rndColor) { bgCor = fRndCor(10, 20); fgCor = fRndCor(230, 255); } else { bgCor = 'transparent'; //背景色 fgCor = 'red'; //字体颜色 } var re = new RegExp(flag, 'i'); for (var i = 0; i < o.childNodes.length; i++) { var o_ = o.childNodes[i]; var o_p = o_.parentNode; if (o_.nodeType == 1) { this.keyWordHighlight(o_, flag, rndColor, url); } else if (o_.nodeType == 3) { if (!(o_p.nodeName == 'A')) { if (o_.data.search(re) == -1) continue; var temp = fEleA(o_.data, flag); o_p.replaceChild(temp, o_); } } } //------------------------------------------------ function fEleA(text, flag) { var style = ' style="background-color:' + bgCor + ';color:' + fgCor + ';" '; var o = document.createElement('span'); var str = ''; var re = new RegExp('(' + flag + ')', 'gi'); if (url) { str = text.replace(re, '$1'); //这里是给关键字加链接,红色的$1是指上面链接地址后的具体参数。 } else { str = text.replace(re, '$1'); //不加链接时显示 } o.innerHTML = str; return o; } //------------------------------------------------ function fRndCor(under, over) { if (arguments.length == 1) { var over = under; under = 0; } else if (arguments.length == 0) { var under = 0; var over = 255; } var r = fRandomBy(under, over).toString(16); r = padNum(r, r, 2); var g = fRandomBy(under, over).toString(16); g = padNum(g, g, 2); var b = fRandomBy(under, over).toString(16); b = padNum(b, b, 2); //defaultStatus=r+' '+g+' '+b return '#' + r + g + b; function fRandomBy(under, over) { switch (arguments.length) { case 1: return parseInt(Math.random() * under + 1); case 2: return parseInt(Math.random() * (over - under + 1) + under); default: return 0; } } function padNum(str, num, len) { var temp = '' for (var i = 0; i < len; temp += num, i++); return temp = (temp += str).substr(temp.length - len); } } } }; exports('utils', utils); });