//var g_appid = '14919772144482'; //var g_devkey = '14915485974028'; var g_RequestAddress = 'https://api2.tscce.cn'; /** * @note 字符串格式化 * @param fn_objs * @returns object * @constructor */ Overload = function (fn_objs) { var is_match = function (x, y) { if (x == y) { return true; } if (x.indexOf("*") == -1) { return false; } var x_arr = x.split(","), y_arr = y.split(","); if (x_arr.length != y_arr.length) { return false; } while (x_arr.length) { var x_first = x_arr.shift(), y_first = y_arr.shift(); if (x_first != "*" && x_first != y_first) { return false; } } return true; }; var ret = function () { var args = arguments , args_len = args.length , args_types = [] , args_type , fn_objs = args.callee._fn_objs , match_fn = function () { }; for (var i = 0; i < args_len; i++) { var type = typeof args[i]; type == "object" && (args[i].length > -1) && (type = "array"); args_types.push(type); } args_type = args_types.join(","); for (var k in fn_objs) { if (is_match(k, args_type)) { match_fn = fn_objs[k]; break; } } return match_fn.apply(this, args); }; ret._fn_objs = fn_objs; return ret; }; /** * 通过对字符串进行伪重载实现对字符串对象的格式化功能 * @type {Object} */ String.prototype.format = Overload({ "array": function (params) { var reg = /{(\d+)}/gm; return this.replace(reg, function (match, name) { return params[~~name]; }); }, "object": function (param) { var reg = /{([^{}]+)}/gm; return this.replace(reg, function (match, name) { return param[name]; }); } }); function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != null) { return r[2]; } return null; } //------------设置Cookie参数方法------------// function setCookie(name, value) { var Days = 30; //此 cookie 将被保存 30 天 var exp = new Date(); exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000); document.cookie = name + "=" + value + ";expires=" + exp.toGMTString(); } //------------获取Cookie参数方法------------// function getCookie(name) { var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)")); if (arr != null) { return arr[2]; } return null; } //------------删除Cookie参数方法------------// function delCookie(name) { var exp = new Date(); exp.setTime(exp.getTime() - 1); var cval = getCookie(name); if (cval != null) { document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString(); } } /** * 获取随机数 */ function randomChar(length) { var x = "0123456789qwertyuioplkjhgfdsazxcvbnm"; var tmp = ""; var timestamp = new Date().getTime(); for (var i = 0; i < length; i++) { tmp += x.charAt(Math.ceil(Math.random() * 100000000) % x.length); } return timestamp + tmp; } function localeUrl() { var url = window.location.origin + window.location.pathname; var index = url.indexOf('?'); if (-1 == index) return url; else return name.substr(0, index); } function extractPath(name) { var index = name.lastIndexOf('/'); if (-1 == index) return name; else return name.substr(0, index + 1); } function HttpRequest(args) { var defaults = { url: g_RequestAddress, async: true, OnBeforeSend: function (/*XMLHttpRequest*/object) { }, OnComplete: function (/*XMLHttpRequest, textStatus*/object, status) { }, OnSuccess: function (/*data, textStatus*/message, status) { }, OnError: function (/*XMLHttpRequest, textStatus, errorThrown*/object, status, error) { }, }, settings = $.extend({}, defaults, args); var data = {}; $.each(settings, function (name, value) { if ( 'async' != name && 'url' != name && 'OnBeforeSend' != name && 'OnComplete' != name && 'OnSuccess' != name && 'OnError' != name ) { data[name] = value; } }); //var succ = function (/*data, textStatus*/message, status) { // var obj = eval("(" + decodeURIComponent(message) + ")"); // if (!obj) { // //alert('pager6'); // window.location.href = PAGENAME_LOGIN + "?manager_id=" + getCookie(g_managerid); // return false; // } // else if (1 == obj.error && 10008 == obj.error_code) { // //alert('pager7'); // window.location.href = PAGENAME_LOGIN + "?manager_id=" + getCookie(g_managerid); // return false; // } // else { // return settings.OnSuccess(message, status); // } //}; $.ajax({ url: settings.url, type: 'post', async: settings.async, data: data, datatype: 'json', timeout: 1000 * 7, beforeSend: settings.OnBeforeSend, success: settings.OnSuccess, //success: succ, error: settings.OnError, complete: settings.OnComplete, }); return settings; }