237 lines
7.1 KiB
JavaScript
237 lines
7.1 KiB
JavaScript
|
|
var ext = ext || {};
|
|||
|
|
ext.data = ext.data || {};// 用于存放临时的数据或者对象
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 屏蔽右键
|
|||
|
|
*
|
|||
|
|
* @requires jQuery
|
|||
|
|
*/
|
|||
|
|
$(document).bind('contextmenu', function() {
|
|||
|
|
// return false;
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 禁止复制
|
|||
|
|
*
|
|||
|
|
* @requires jQuery
|
|||
|
|
*/
|
|||
|
|
$(document).bind('selectstart', function() {
|
|||
|
|
// return false;
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 增加命名空间功能
|
|||
|
|
*
|
|||
|
|
* 使用方法:ext.ns('jQuery.bbb.ccc','jQuery.eee.fff');
|
|||
|
|
*/
|
|||
|
|
ext.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 ext.serializeObject($('#formId'))
|
|||
|
|
*
|
|||
|
|
* @requires jQuery
|
|||
|
|
*
|
|||
|
|
* @returns object
|
|||
|
|
*/
|
|||
|
|
ext.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功能
|
|||
|
|
*
|
|||
|
|
* @example ext.formatString('字符串{0}字符串{1}字符串','第一个变量','第二个变量');
|
|||
|
|
*
|
|||
|
|
* @returns 格式化后的字符串
|
|||
|
|
*/
|
|||
|
|
ext.formatString = function(str) {
|
|||
|
|
for (var i = 0; i < arguments.length - 1; i++) {
|
|||
|
|
str = str.replace("{" + i + "}", arguments[i + 1]);
|
|||
|
|
}
|
|||
|
|
return str;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 接收一个以逗号分割的字符串,返回List,list里每一项都是一个字符串
|
|||
|
|
*
|
|||
|
|
* @returns list
|
|||
|
|
*/
|
|||
|
|
ext.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
|
|||
|
|
*/
|
|||
|
|
ext.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 + ":" + ext.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(ext.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 ext.cookie('the_cookie', 'the_value');
|
|||
|
|
* @desc Set the value of a cookie.
|
|||
|
|
* @example ext.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
|
|||
|
|
* @desc Create a cookie with all available options.
|
|||
|
|
* @example ext.cookie('the_cookie', 'the_value');
|
|||
|
|
* @desc Create a session cookie.
|
|||
|
|
* @example ext.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 ext.cookie
|
|||
|
|
* @cat Plugins/Cookie
|
|||
|
|
* @author Klaus Hartl/klaus.hartl@stilbuero.de
|
|||
|
|
*
|
|||
|
|
* Get the value of a cookie with the given key.
|
|||
|
|
*
|
|||
|
|
* @example ext.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 ext.cookie
|
|||
|
|
* @cat Plugins/Cookie
|
|||
|
|
* @author Klaus Hartl/klaus.hartl@stilbuero.de
|
|||
|
|
*/
|
|||
|
|
ext.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默认属性和方法
|
|||
|
|
*
|
|||
|
|
* @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);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});*/
|
|||
|
|
/**
|
|||
|
|
* 监视session超时
|
|||
|
|
*/
|
|||
|
|
$.ajaxSetup({
|
|||
|
|
type : 'POST',
|
|||
|
|
contentType:"application/x-www-form-urlencoded;charset=utf-8",
|
|||
|
|
cache:false,
|
|||
|
|
error: function (XMLHttpRequest, textStatus, errorThrown){
|
|||
|
|
if(XMLHttpRequest.status==403){
|
|||
|
|
top.$.messager.alert('提示','您没有权限访问此资源','info',function(){
|
|||
|
|
return false;
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
complete:function(XMLHttpRequest,textStatus){
|
|||
|
|
var sessionstatus=XMLHttpRequest.getResponseHeader("sessionstatus"); //通过XMLHttpRequest取得响应头,sessionstatus,
|
|||
|
|
if(sessionstatus=='timeout'){//如果超时就处理 ,指定要跳转的页面
|
|||
|
|
top.$.messager.alert('提示','登录已超时,请重新登录!','info',function(){
|
|||
|
|
top.location.href=ext.contextPath; //跳转到登陆页面
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
if(XMLHttpRequest.status==0){
|
|||
|
|
//页面跳转可能会触发
|
|||
|
|
/*top.$.messager.alert('提示','无法连接到服务器!','info',function(){
|
|||
|
|
return false;
|
|||
|
|
});*/
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 解决class="iconImg"的img标记,没有src的时候,会出现边框问题
|
|||
|
|
*
|
|||
|
|
* @requires jQuery
|
|||
|
|
*/
|
|||
|
|
$(function() {
|
|||
|
|
$('.iconImg').attr('src', ext.pixel_0);
|
|||
|
|
});
|