123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263 |
- 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+='<input type="hidden" name="'+ pair[0] +'" value="'+ pair[1] +'" />';
- });
- // request发送请求
- jQuery('<form action="'+ url +'" method="'+ (method||'post') +'">'+inputs+'</form>')
- .appendTo('body').submit().remove();
- };
- };
|