不断更新
功能划分:
1.字符串操作:
1.1 复制到剪贴板
1.2 字符串省略
1.3
2.url操作
2.1 收藏本站
2.2 取得项目名称
2.3 取得地址栏url
2.4 取得地址栏传递
3.form操作
4. Ajax操作
5.日期操作
6.过滤字符
7.json操作
8.file操作
9.
/*
功能:
ie8下trim无效的问题
示例:
$.trim(stringxx);
stirngxx.trim();
*/
String.prototype.trim = function () {
return this.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}
function namespace() {
var a = arguments,//arguments:function内置的对象,存储函数的所有参数,是个数组。
o = null,
i, j, d, rt;
for (i = 0; i < a.length; ++i) {
d = a[i].split(".");
rt = d[0];
eval('if(typeof ' + rt + '=="undefined"){' + rt + '={};}o=' + rt + ';'); //eval:把这一串字符串当js来运行
for (j = 1; j < d.length; ++j) {
o[d[j]] = o[d[j]] || {};
o = o[d[j]];
}
}
}
/*
@auther: liuxiaojuan
@date: 2015-7-30
@rely:
dairy_common.css
*/
namespace("com.whsmwy");
com.whsmwy = function() {};
com.whsmwy.prototype = {
/*
功能:
popAny:弹出黑色半透明圆角背景白色文字的fixed的窗口,。objContent:弹出窗口中显示的内容,style:要显示的类别。
窗口5秒内自动消失。适合执行操作后给出的提示场合。
popAny和popFadeout需成对出现
*/
popAny: function(objContent, style) {
if (fadeOut != null) {
clearTimeout(fadeOut);
$('.popAnyWhere').find('p').text(objContent);
} else {
$("body").append("<div class='popAnyWhere'></div>");
var boxContent = "<p>" + objContent + "</p>";
$(".popAnyWhere").removeClass("smile").removeClass("cry").addClass(style);
$(".popAnyWhere").append(boxContent);
var boxWidth = $(".popAnyWhere").width();
var leftx = (document.body.clientWidth - boxWidth) / 2 + "px";
var bottomx = "20px";
$(".popAnyWhere").attr("style", "display:block; left:" + leftx + ";bottom:" + bottomx);
}
fadeOut = setTimeout(this.popFadeout, 5000);
},
popFadeout: function() {
$('.popAnyWhere').fadeOut();
$('.popAnyWhere').remove();
fadeOut = null;
},
/*
功能:
loading:弹出黑色半透明圆角背景白色文字的fixed的窗口,。objContent:弹出窗口中显示的内容。
ajaxq请求结束后自动消失,如果没有请求成功则一直等待。适合ajax请求等待的场合。
loading和loadingFadeout需成对出现。还需要配合css文件(dairy_common.css)。
*/
loading: function(objContent) {
if (fadeOut != null) {
clearTimeout(fadeOut);
$('.popAnyWhere').find('p').text(objContent);
} else {
$("body").append("<div class='popAnyWhere'></div>");
var boxContent = "<p>" + objContent + "</p>";
$(".popAnyWhere").addClass("loadingImg");
$(".popAnyWhere").append(boxContent);
var boxWidth = $(".popAnyWhere").width();
var leftx = (document.body.clientWidth - boxWidth) / 2 + "px";
var bottomx = "20px";
$(".popAnyWhere").attr("style", "display:block; left:" + leftx + ";bottom:" + bottomx);
}
//fadeOut = setTimeout(loadingFadeout, 1500);
},
loadingFadeout: function(id) {
$('.popAnyWhere').fadeOut();
$('.popAnyWhere').remove();
fadeOut = null;
//$("#" + id).removeAttr("disabled");
},
/*
功能:
ajax请求包装。
ajaxJsonCall需要和ajaxToggle配合使用才能出现ajax等待的时候弹出加载窗口。
@rely:
app_path参数的获取。需要jsp页面顶部添加<%String appPath = request.getContextPath();%>
参数:
url:要包装的地址;
data:要传递的数据;
callback:执行成功要执行的函数;
global:是否触发全局 AJAX 事件。默认值: true。
sync:默认值: true。默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。 注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
error:请求失败时调用此函数。参数:XMLHttpRequest 对象、错误信息、(可选)捕获的异常对象。
*/
ajaxJsonCall: function(url, data, callback, global, sync,errcallback) {
$.ajax(app_path + '/' + url, {
data: data,
success: callback,
dataType: "json",
type: "post",
global: global ? true : false,
async: sync ? false : true,
error:errcallback
});
//$.post(app_path + '/' + url, data, callback, 'json', global ? true : false);
},
/*
功能:
需要默认加载ajaxToggle。
$(document)上绑定ajaxStart和ajaxStop两个方法,也可设置具体额某个元素绑定两个ajax全局方法,把正在加加载的动画放在这个元素html中。
*/
ajaxToggle: function() {
$(document).ajaxStart(function() {
whsmwy.loading("努力加载中...");
}).ajaxStop(function() {
whsmwy.loadingFadeout();
});
},
/*
功能:检查某个cookie是否存在。
*/
getCookie: function(cookie_name) {
var allcookies = document.cookie;
var cookie_pos = allcookies.indexOf(cookie_name); //索引的长度
// 如果找到了索引,就代表cookie存在,
var value;
if (cookie_pos != -1) {
return 1; //已经登陆
} else {
return 2; //未登录
}
},
/*
功能:文本输入框获得焦点清空默认值。
*/
setInputTextValue: function() {
if ($(":text").length) {
$(":text").focus(function() {
if ($(this).val() == this.defaultValue) {
$(this).val("");
}
}).blur(function() {
$(this).removeClass("focus");
if ($(this).val() == '') {
$(this).val(this.defaultValue);
}
});
}
},
/*
功能:鼠标感应显示隐藏效果。
*/
QRCode: function(obj1, obj2) {
var _e;
$(obj1).mouseenter(function() {
$(obj2).fadeIn();
});
$(obj1).mouseleave(function() {
_e = setTimeout(function() {
$(obj2).fadeOut()
}, 400);
});
$(obj2).mouseenter(function() {
clearTimeout(_e);
});
$(obj2).mouseleave(function() {
$(this).fadeOut();
});
},
/*
功能:剪切字符串
*/
cutStr: function(str, cutnum) {
var temp1 = str.replace(/[^\x00-\xff]/g, "**"); //精髓
var temp2 = temp1.substring(0, cutnum);
//找出有多少个*
var x_length = temp2.split("\*").length - 1;
var hanzi_num = x_length / 2;
cutnum = cutnum - hanzi_num; //实际需要sub的长度是总长度-汉字长度
var res = str.substring(0, cutnum);
if (cutnum < str.length) {
var end = res + "……";
} else {
var end = res;
}
return end;
},
/*
功能:格式化日期
*/
formatDate: function(date, format) {
if (!date) return;
if (!format) format = "yyyy-MM-dd";
switch (typeof date) {
case "string":
date = new Date(date.replace(/-/g, "/"));
break;
case "number":
date = new Date(date);
break;
}
if (!date instanceof Date) return;
var dict = {
"yyyy": date.getFullYear(),
"M": date.getMonth() + 1,
"d": date.getDate(),
"H": date.getHours(),
"m": date.getMinutes(),
"s": date.getSeconds(),
"MM": ("" + (date.getMonth() + 101)).substr(1),
"dd": ("" + (date.getDate() + 100)).substr(1),
"HH": ("" + (date.getHours() + 100)).substr(1),
"mm": ("" + (date.getMinutes() + 100)).substr(1),
"ss": ("" + (date.getSeconds() + 100)).substr(1)
};
return format.replace(/(yyyy|MM?|dd?|HH?|ss?|mm?)/g, function() {
return dict[arguments[0]];
});
},
/*
功能:阻止输入框回车提交表单,jqobj为回车的文本输入框的id对象
*/
stopKeydown: function(jqobj) {
jqobj.on("keydown", function(e) {
e = e || event;
var lKeyCode = (navigator.appname == "Netscape") ? e.which : e.keyCode;
if (lKeyCode == 13) {
return false;
}
});
},
/*
功能:防止SQL注入
*/
AntiSqlValid: function(jqobj) {
var s = $(jqobj).val();
//格式 RegExp("[在中间定义特殊过滤字符]")
var pattern = new RegExp("[%--`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]")
var rs = "";
for (var i = 0; i < s.length; i++) {
rs = rs + s.substr(i, 1).replace(pattern, '');
}
$(jqobj).val(rs);
},
/*
收藏本站代码
οnclick="favorite(window.location,document.title)"
*/
favorite: function() {
var aUrls = document.URL.split("/");
var vDomainName = "http://" + aUrls[2] + "/";
var description = document.title;
var browserName=navigator.userAgent.toLowerCase();
if(!!window.ActiveXObject || "ActiveXObject" in window){
//alert("IE");
window.external.AddFavorite(vDomainName, description);
return ;
}else if(/firefox/i.test(browserName)){
//alert("Firefox");
//window.sidebar.addPanel(description,vDomainName, "");
var e = document.getElementById('fav');
e.setAttribute('href', vDomainName);
e.setAttribute('title', description);
e.setAttribute('rel', 'sidebar');
return;
}else if(/chrome/i.test(browserName) && /webkit/i.test(browserName) && /mozilla/i.test(browserName)){
//alert("Chrome");
alert("抱歉,您所使用的浏览器无法完成此操作。\n\n请使用Ctrl+D进行添加");
return ;
}else if(/opera/i.test(browserName)){
//alert("Opera");
var e = document.getElementById('fav');
e.setAttribute('href', vDomainName);
e.setAttribute('title', description);
e.setAttribute('rel', 'sidebar');
return ;
}else if(/webkit/i.test(browserName) &&!(/chrome/i.test(browserName) && /webkit/i.test(browserName) && /mozilla/i.test(browserName))){
//alert("Safari");
alert("抱歉,您所使用的浏览器无法完成此操作。\n\n请使用Ctrl+D进行添加");
return ;
}else{
//alert("unKnow");
alert("抱歉,您所使用的浏览器无法完成此操作。\n\n请使用Ctrl+D进行添加");
}
},
/*
说明:
退出登录三步需要在jsp页面包含以下代码:
<cc:jspRequestTag url="/Bs1/inc_loginoutdialog.jsp" /> =》退出登录的dom结构
<form name="logoutform" id="logoutform" action="">
<input name="service" id="service" type="hidden"/>
</form>
功能:退出登录(第1步)
点击导航的退出文字后调用确认退出登录窗口。
*/
logouts:function (){
if(!whsmwy.confirm_logout("退出提醒","确定退出登录吗?")) {
return;
}
},
/*
功能:退出登录(第1步)
设置退出登录窗口的样式
*/
confirm_logout:function(title,text) {
$('#commonPopDialog3').css('width', '300px');
$('#commonPopDialog3').modal('show');
$('#commonPopDialog3 .modal-header h3').text(title);
$('#commonPopDialog3 .modal-body').empty();
$('#commonPopDialog3 .modal-body').append(text).css({"text-align": 'left',"padding": '20px'});
var cancelBtn='<button class="btn btn_close" data-dismiss="modal" aria-hidden="true">取消</button>';
if( $("#commonPopDialog3 .btn_close").length < 1 ){
$('#commonPopDialog3 .modal-footer').append(cancelBtn);
}
},
/*
功能:退出登录(第3步)
点击弹出的退出登录窗口的确定按钮后调用的函数,设置service退出后返回的地址,设置表单提交的action。
*/
logout_confirm:function (){
var jsessionid=head.getCookie("JSESSIONID");
head.delCookie("CSPLOGIN");
/*
退出登录的form:logoutform 内有id=service的inputdom
注册窗口的form:gologinfrom 内有id=service的inputdom
登录窗口的form:loginform 内有id=service的inputdom
*/
$("#logoutform #service").val("http://www.whsmwy.com/wh_dairyInquiry/public/dairyInquiry/service/DairyInquiry_queryIndex.jsp");//退出后返回的地址
$("#logoutform").attr('action', 'https://scity.cn/sso/logout;jsessionid='+jsessionid);
$("#logoutform").submit();
},
/*
功能:取得json的子元素格式
点击弹出的退出登录窗口的确定按钮后调用的函数,设置service退出后返回的地址,设置表单提交的action。
*/
JSONLength:function(obj) {
var size = 0, key;
for (key in obj) {
if (obj.hasOwnProperty(key)) size++;
}
return size;
},
/*边栏工具条:到达顶部(开始)*/
go: function(speed, time) { //直接到达顶部
if ($(window).scrollTop() != 0) { //没有到达顶部
var $opt = $("html,body");
if (!$opt.is(":animated")) { //不在运动
if (speed == "slow") {
$opt.animate({
scrollTop: 0
}, time);
} else {
$opt.scrollTop(0);
}
}
}
},
checkPositon: function(pos) {
if ($(window).scrollTop() > pos) {
$("#backtop").fadeIn();
} else {
$("#backtop").fadeOut();
}
},
/*边栏工具条:到达顶部(结束)*/
/*
功能:判断服务器上的文件是否存在
*/
checkFileExist:function(fileurl){
var xmlhttp;
//判断浏览器是否支持ActiveX控件
if(window.ActiveXObject){
//支持-通过ActiveXObject的一个新实例来创建XMLHttpRequest对象
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest){
//不支持
xmlhttp = new XMLHttpRequest()
}
//var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("GET",fileurl,false);
xmlhttp.send();
if(xmlhttp.readyState==4){
if(xmlhttp.status==200){
return true;
}
else if(xmlhttp.status==404){
return false; //url不存在
}
else{
return false; //其他状态
}
}
},
/*边栏工具条:到达顶部(结束)*/
getQueryString:function(name)//根据参数名取得地址栏的参数值
{
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if(r!=null)return unescape(r[2]); return null;
}
///
}
var fadeOut = null; //popAny弹出框状态
var whsmwy = new com.whsmwy();
whsmwy.ajaxToggle();
$(function(){
if($('#addFavorite').length){
$('#addFavorite').addFavorite(document.title,window.location);
}
//边栏工具条:到达顶部
if ($("#backtop").length) {
var windowHeight = $(window).height();
whsmwy.checkPositon(windowHeight); //初始的时候隐返回顶部按钮
$("#backtop").on("click", function() {
whsmwy.go("slow", 1000);
});
$(window).on("scroll", function() { //超过一屏显示到达顶部按钮
whsmwy.checkPositon(windowHeight);
});
}
//
});
//ie8下trim无效的问题
String.prototype.trim = function () {
return this.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}