var sy = sy || {}; sy.data = sy.data || {};// 用于存放临时的数据或者对象 /** * 屏蔽右键 * * @author Jeffrey * * @requires jQuery */ $(document).bind('contextmenu', function() { // return false; }); /** * 禁止复制 * * @author Jeffrey * * @requires jQuery */ $(document).bind('selectstart', function() { // return false; }); /** * @author Jeffrey * * 增加命名空间功能 * * 使用方法:sy.ns('jQuery.bbb.ccc','jQuery.eee.fff'); */ sy.ns = function() { var o = {}, d; for (var i = 0; i < arguments.length; i++) { d = arguments[i].split("."); o = window[d[0]] = window[d[0]] || {}; for (var k = 0; k < d.slice(1).length; k++) { o = o[d[k + 1]] = o[d[k + 1]] || {}; } } return o; }; /** * 将form表单元素的值序列化成对象 * * @example sy.serializeObject($('#formId')) * * @author Jeffrey * * @requires jQuery * * @returns object */ sy.serializeObject = function(form) { var o = {}; $.each(form.serializeArray(), function(index) { if (this['value'] != undefined && this['value'].length > 0) {// 如果表单项的值非空,才进行序列化操作 if (o[this['name']]) { o[this['name']] = o[this['name']] + "," + this['value']; } else { o[this['name']] = this['value']; } } }); return o; }; /** * 增加formatString功能 * * @author Jeffrey * * @example sy.formatString('字符串{0}字符串{1}字符串','第一个变量','第二个变量'); * * @returns 格式化后的字符串 */ sy.formatString = function(str) { for (var i = 0; i < arguments.length - 1; i++) { str = str.replace("{" + i + "}", arguments[i + 1]); } return str; }; /** * 接收一个以逗号分割的字符串,返回List,list里每一项都是一个字符串 * * @author Jeffrey * * @returns list */ sy.stringToList = function(value) { if (value != undefined && value != '') { var values = []; var t = value.split(','); for (var i = 0; i < t.length; i++) { values.push('' + t[i]);/* 避免他将ID当成数字 */ } return values; } else { return []; } }; /** * JSON对象转换成String * * @param o * @returns */ sy.jsonToString = function(o) { var r = []; if (typeof o == "string") return "\"" + o.replace(/([\'\"\\])/g, "\\$1").replace(/(\n)/g, "\\n").replace(/(\r)/g, "\\r").replace(/(\t)/g, "\\t") + "\""; if (typeof o == "object") { if (!o.sort) { for ( var i in o) r.push(i + ":" + sy.jsonToString(o[i])); if (!!document.all && !/^\n?function\s*toString\(\)\s*\{\n?\s*\[native code\]\n?\s*\}\n?\s*$/.test(o.toString)) { r.push("toString:" + o.toString.toString()); } r = "{" + r.join() + "}"; } else { for (var i = 0; i < o.length; i++) r.push(sy.jsonToString(o[i])); r = "[" + r.join() + "]"; } return r; } return o.toString(); }; /** * Create a cookie with the given key and value and other optional parameters. * * @example sy.cookie('the_cookie', 'the_value'); * @desc Set the value of a cookie. * @example sy.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true }); * @desc Create a cookie with all available options. * @example sy.cookie('the_cookie', 'the_value'); * @desc Create a session cookie. * @example sy.cookie('the_cookie', null); * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain used when the cookie was set. * * @param String * key The key of the cookie. * @param String * value The value of the cookie. * @param Object * options An object literal containing key/value pairs to provide optional cookie attributes. * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object. If a negative value is specified (e.g. a date in the past), the cookie will be deleted. If set to null or omitted, the cookie will be a session cookie and will not be retained when the the browser exits. * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie). * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie). * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will require a secure protocol (like HTTPS). * @type undefined * * @name sy.cookie * @cat Plugins/Cookie * @author Klaus Hartl/klaus.hartl@stilbuero.de * * Get the value of a cookie with the given key. * * @example sy.cookie('the_cookie'); * @desc Get the value of a cookie. * * @param String * key The key of the cookie. * @return The value of the cookie. * @type String * * @name sy.cookie * @cat Plugins/Cookie * @author Klaus Hartl/klaus.hartl@stilbuero.de */ sy.cookie = function(key, value, options) { if (arguments.length > 1 && (value === null || typeof value !== "object")) { options = $.extend({}, options); if (value === null) { options.expires = -1; } if (typeof options.expires === 'number') { var days = options.expires, t = options.expires = new Date(); t.setDate(t.getDate() + days); } return (document.cookie = [ encodeURIComponent(key), '=', options.raw ? String(value) : encodeURIComponent(String(value)), options.expires ? '; expires=' + options.expires.toUTCString() : '', options.path ? '; path=' + options.path : '', options.domain ? '; domain=' + options.domain : '', options.secure ? '; secure' : '' ].join('')); } options = value || {}; var result, decode = options.raw ? function(s) { return s; } : decodeURIComponent; return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null; }; /** * 改变jQuery的AJAX默认属性和方法 * * @author Jeffrey * * @requires jQuery * */ $.ajaxSetup({ type : 'POST', error : function(XMLHttpRequest, textStatus, errorThrown) { try { parent.$.messager.progress('close'); parent.$.messager.alert('错误', XMLHttpRequest.responseText); } catch (e) { alert(XMLHttpRequest.responseText); } } }); /** * 解决class="iconImg"的img标记,没有src的时候,会出现边框问题 * * @author Jeffrey * * @requires jQuery */ $(function() { $('.iconImg').attr('src', sy.pixel_0); }); //对Date的扩展,将 Date 转化为指定格式的String //月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, //年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) //例子: //(new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 //(new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18 Date.prototype.Format = function (fmt) { //author: meizz 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; }; jQuery.download = function(url, data, method){ // 获得url和data if( url && data ){ // data 是 string 或者 array/object data = typeof data == 'string' ? data : decodeURIComponent(jQuery.param(data)); // 把参数组装成 form的 input var inputs = ''; jQuery.each(data.split('&'), function(){ var pair = this.split('='); inputs+=''; }); // request发送请求 jQuery('
'+inputs+'
') .appendTo('body').submit().remove(); }; };