/** * 公用的js函数文件 */ /** * 伪造http referer信息 * 用 document.all 来判断当前的浏览器是否是IE, 如果是的话就生成一个link, * 然后自动执行 onclick 事件,如果不是的话就用JS 跳转。这样在处理页面就可以得到 HTTP_REFERER * @param url */ function referURL(url){ var isIe=(document.all)?true:false; //console.info("isIe:"+isIe); if(isIe) { var linka = document.createElement('a'); linka.href=url; document.body.appendChild(linka); linka.click(); } } /** * 唯一标识 指定长度和基数 */ function generateUUID(len, radix) { var timeData = new Date().getTime(); var chars = ('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz').split(''); var uuid = [], i; radix = radix || chars.length; if (len) { // Compact form for (i = 0; i < len; i++) uuid[i] = chars[0 | (Math.random()*radix)]; } else { // rfc4122, version 4 form var r; // rfc4122 requires these characters uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-'; uuid[14] = '4'; // Fill in random data. At i==19 set the high bits of clock sequence as // per rfc4122, sec. 4.1.5 for (i = 0; i < 36; i++) { if (!uuid[i]) { r = 0 | (Math.random()*16); uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r]; } } } return uuid.join(''); } /** * GUID是一种由算法生成的二进制长度为128位的数字标识符。 * GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”, * 其中的 x 是 0-9 或 a-f 范围内的一个32位十六进制数。在理想情况下,任何计算机和计算机集群都不会生成两个相同的GUID。 * @returns {string} */ function uuid() { var d = new Date().getTime(); //var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { var uuid = 'xxxx-yxxx'.replace(/[xy]/g, function(c) { var r = (d + Math.random()*16)%16 | 0; return (c=='x' ? r : (r&0x3|0x8)).toString(16); }); return uuid; }; //货币格式化 //Extend the default Number object with a formatMoney() method: //usage: someVar.formatMoney(decimalPlaces, symbol, thousandsSeparator, decimalSeparator) //defaults: (2, "$", ",", ".") Number.prototype.formatMoney = function (places, symbol, thousand, decimal) { places = !isNaN(places = Math.abs(places)) ? places : 2; symbol = symbol !== undefined ? symbol : "$"; thousand = thousand || ","; decimal = decimal || "."; var number = this, negative = number < 0 ? "-" : "", i = parseInt(number = Math.abs(+number || 0).toFixed(places), 10) + "", j = (j = i.length) > 3 ? j % 3 : 0; return symbol + negative + (j ? i.substr(0, j) + thousand : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + thousand) + (places ? decimal + Math.abs(number - i).toFixed(places).slice(2) : ""); }; /** * 判断是否登录,没登录刷新当前页,促使Shiro拦截后跳转登录页 * @param result ajax请求返回的值 * @returns {如果没登录,刷新当前页} */ function isLogin(result){ if(result && result.code && (result.code == '1101' || result.code=='1102')){ window.location.reload(true);//刷新当前页 } return true;//返回true } /** * 获取get请求参数 * @param name * @returns */ function GetQueryString(name){ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var search=window.location.search; if(search!=null && search!=""){ var r = search.substr(1).match(reg); if(r!=null){ return unescape(r[2]); } } return null; } /** * 获取菜单uri * @returns */ function getCallback(){ var pathname = window.location.pathname; var param=GetQueryString("callback"); if(param!=null && param != ""){ return param; }else{ return pathname; } } /** * 针对不同的错误可结合业务自定义处理方式 * @param result * @returns {Boolean} */ function isError(result){ var flag=true; if(result && result.status){ flag=false; if(result.status == '-1' || result.status=='-101' || result.status=='400' || result.status=='404' || result.status=='500'){ layer.alert(result.data); }else if(result.status=='403'){ layer.alert(result.data,function(){ //跳转到未授权界面 window.location.href="/403"; }); } } return flag;//返回true }