Files
SIPAIIS_WMS_JSSW/bin/WebRoot/JS/extJquery.js
2026-01-16 14:13:44 +08:00

237 lines
7.1 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
};
/**
* 接收一个以逗号分割的字符串返回Listlist里每一项都是一个字符串
*
* @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);
});