摘自启点的main.js_javascript技巧
程序员文章站
2022-05-19 14:34:32
...
String.prototype.trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}
String.prototype.len=function()
{
return this.replace(/[^\x00-\xff]/g,'aa').length;
}
function StringBuilder(value)
{
this.strings = new Array("");
this.append(value);
}
// Appends the given value to the end of this instance.
StringBuilder.prototype.append = function (value)
{
if (value)
{
this.strings.push(value);
}
}
// Clears the string buffer
StringBuilder.prototype.clear = function ()
{
this.strings.length = 1;
}
// Converts this instance to a String.
StringBuilder.prototype.toString = function ()
{
return this.strings.join("");
}
//string format prototype
// sample: var test="my name is {0} {2} " ;
// alert(test.format('liang','zhonghua');
if (!String._FORMAT_SEPARATOR){
String._FORMAT_SEPARATOR = String.fromCharCode(0x1f);
String._FORMAT_ARGS_PATTERN = new RegExp('^[^' + String._FORMAT_SEPARATOR + ']*'
+ new Array(100).join('(?:.([^' + String._FORMAT_SEPARATOR + ']*))?'));
}
if (!String.format)
{
String.format = function (s){
return Array.prototype.join.call(arguments, String._FORMAT_SEPARATOR).
replace(String._FORMAT_ARGS_PATTERN, s);
}
}
if (!''.format)
{
String.prototype.format = function (){
return (String._FORMAT_SEPARATOR +
Array.prototype.join.call(arguments, String._FORMAT_SEPARATOR)).
replace(String._FORMAT_ARGS_PATTERN, this);
}
}
//end string format
function checkLoginByCookie()
{
var cookieId="AUTHTEST";
if(window.location.href.toLowerCase().indexOf("qidian.com") > -1)
{
cookieId="cmfuToken";
}
if((GetCookie(cookieId)!=null && GetCookie(cookieId).length > 0 ))
{
return true;
}
else
{
if(GetCookie('cmfu_al') != null && GetCookie('cmfu_al').length > 0)
{
return true;
}
}
return false;
}
function getUrlParam(name)
{
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)","i");
var r = window.location.search.substr(1).match(reg);
if (r!=null)
{
return unescape(r[2]);
}
else
{
return null;
}
}
function $(objName)
{
if(document.getElementById)
{
return document.getElementById(objName );
}
else if(document.layers)
{
return eval("document.layers['" + objName +"']");
}
else
{
return eval('document.all.' + objName);
}
}
function DateAdd(BaseDate, interval, DatePart)
{
var dateObj = new Date(BaseDate.replace("-",","));
var millisecond=1;
var second=millisecond*1000;
var minute=second*60;
var hour=minute*60;
var day=hour*24;
var year=day*365;
var newDate;
var dVal = new Date(dateObj)
var dVal=dVal.valueOf();
switch(DatePart)
{
case "ms": newDate=new Date(dVal+millisecond*interval); break;
case "s": newDate=new Date(dVal+second*interval); break;
case "mi": newDate=new Date(dVal+minute*interval); break;
case "h": newDate=new Date(dVal+hour*interval); break;
case "d": newDate=new Date(dVal+day*interval); break;
case "y": newDate=new Date(dVal+year*interval); break;
default: return escape("日期格式不对");
}
newDate = new Date(newDate);
return newDate.getFullYear() + "-" + (newDate.getMonth() + 1) + "-" + newDate.getDate() ;
}
//增加当前日期的天数
Date.prototype.AddDays=function (interval)
{
var dateObj = this;
var millisecond=1;
var second=millisecond*1000;
var minute=second*60;
var hour=minute*60;
var day=hour*24;
var year=day*365;
var newDate;
var dVal = new Date(dateObj)
var dVal=dVal.valueOf();
newDate=new Date(dVal+day*interval);
newDate = new Date(newDate);
return newDate
}
function SetCookie(name, value)
{
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2].toGMTString() : (new Date()).AddDays(30).toGMTString();;
var path = (argc > 3) ? argv[3] : "/";
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
var content = name + "=" + escape(value) + ";";
if(expires != null)
{
content += " expires=" + expires + ";";
}
if(path != null)
{
content += " path=" + path + ";";
}
if(domain != null)
{
content += " domain=" + domain + ";";
}
document.cookie = content;
}
function GetCookie(cookieName)
{
var cookieString = document.cookie;
var start = cookieString.indexOf(cookieName + '=');
// 加上等号的原因是避免在某些 Cookie 的值里有
// 与 cookieName 一样的字符串。
if (start == -1) // 找不到
return null;
start += cookieName.length + 1;
var end = cookieString.indexOf(';', start);
if (end == -1) return unescape(cookieString.substring(start));
return unescape(cookieString.substring(start, end));
}
/*文本框得到焦点*/
function TextBoxOnFocus(txtControl,strDefaultText)
{
if (txtControl.value==strDefaultText)
txtControl.value="";
}
/*文本框失去焦点*/
function TextBoxOnBlur(txtControl,strDefaultText)
{
if (txtControl.value.replace(/(^[\s]*)|([\s]*$)/g,"")=="")
txtControl.value=strDefaultText;
}
/*功能:弹出群发消息窗口*/
function MultiSendWin(subject,content)
{
var win =window.open(uploadURL+"?subject=" + subject + "&content=" +content,"","menubar=no,width=480,height=550,resizeable=no","");
return false;
}
/*功能:弹出留言窗口
function SpaceSendMsg(toUserId)
{
var win =window.open(spaceSendMsgURL+"?toUserId=" + toUserId,"","menubar=no,width=500,height=400,resizeable=no","");
return false;
}
*/
function ShowServerMessage(result)
{
eval(result.value);
}
//回车提交表单
function KeydownSubmitForm(btnId)
{
var btn=document.getElementById(btnId);
if (btn!=null&& event.keyCode== 13)
{
event.returnValue=false;
event.keyCode=9;
btn.click();
}
}
//ReadChapter -抵用券js
function MDown(Object){
Obj=Object.id
document.all(Obj).setCapture()
pX=event.x-document.all(Obj).style.pixelLeft;
pY=event.y-document.all(Obj).style.pixelTop;
}
function MMove(){
if(Obj!=''){
document.all(Obj).style.left=event.x-pX;
document.all(Obj).style.top=event.y-pY;
}
}
function MUp(){
if(Obj!=''){
document.all(Obj).releaseCapture();
Obj='';
}
}
//关闭抵用券信息
function LayerClose(divDiscount){
document.getElementById(divDiscount).style.visibility="hidden";
}
//显示抵用券信息
function LayerShow(divDiscount,discountPrize){
var prizeUI = document.getElementById(divDiscount);
prizeUI.style.left = screen.width-530;
prizeUI.style.top = screen.Height - 480;
prizeUI.style.visibility="visible";
document.getElementById("lblPrize1").innerHTML=discountPrize;
document.getElementById("lblPrize2").innerHTML=discountPrize;
window.setInterval("LayerClose('" + divDiscount + "')",15000);
}
//帮助masterpage用
function HideMenu(menuid)
{
var obj = document.getElementById(menuid);
if(obj.style.display == "none")
{
obj.style.display = "";
}
else
{
obj.style.display = "none";
}
if(obj.style.display == "")
{
var tmpId = "M0";
for(var i = 1 ; i {
var myid = tmpId + i;
if(myid != menuid)
{
document.getElementById(myid).style.display = "none";
}
}
}
}
/* div login */
function ShowLoginDiv()
{
var builder = new StringBuilder();
builder.append("");
");
//window.top.scrollTo(0,0);
document.getElementById("DivMask").style.height=document.body.scrollHeight;
document.getElementById("DivMask").style.width=document.body.scrollWidth;
document.getElementById("DivMask").style.display = 'block';
document.getElementById("DivLogin").style.display = "block";
document.getElementById("DivLogin").innerHTML = builder.toString();
ScrollDiv();
window.onscroll=ScrollDiv;
window.onresize=ScrollDiv;
window.onload=ScrollDiv;
}
function HideLoginMask()
{
document.getElementById("DivMask").style.display="none";
document.getElementById("DivLogin").style.display="none";
}
/*随屏幕滚动*/
function ScrollDiv()
{
if($("DivLogin"))
{
document.getElementById("DivLogin").style.top=(document.body.scrollTop+
(document.body.clientHeight-document.getElementById("DivLogin").offsetHeight)/2)+"px";
document.getElementById("DivLogin").style.left=(document.documentElement.scrollLeft+
(document.body.clientWidth-document.getElementById("DivLogin").offsetWidth)/2)+"px";
}
if($("AddMark"))
{
// if(!event )
// return;
$("AddMark").style.top=document.body.clientHeight + document.body.scrollTop-200
$("AddMark").style.left=document.body.clientWidth-56;
$("AddMark").style.display='';
// (document.body.clientHeight-$("AddMark").offsetHeight)/2)+"px";
if($("MonthVoteTip"))
{
//$("MonthVoteTip").style.top=document.body.scrollTop+document.body.clientHeight-$("MonthVoteTip").offsetHeight+"px";
$("MonthVoteTip").style.top = getPosition($("AddMark")).y - $("AddMark").offsetHeight + "px";
}
}
}
function AutoScroll()
{
window.onscroll=ScrollDiv;
window.onresize=ScrollDiv;
window.onload=ScrollDiv;
}
function getPosition(el)
{
for (var lx=0,ly=0;el!=null;lx+=el.offsetLeft,ly+=el.offsetTop,el=el.offsetParent);
return {x:lx,y:ly}
}
/* 2007-11-28 XuJian */
//截取字符串 包含中文处理
//(串,长度,增加...)
function subString(str, len, hasDot)
{
var newLength = 0;
var newStr = "";
var chineseRegex = /[^\x00-\xff]/g;
var singleChar = "";
var strLength = str.replace(chineseRegex,"**").length;
for(var i = 0;i {
singleChar = str.charAt(i).toString();
if(singleChar.match(chineseRegex) != null)
{
newLength += 2;
}
else
{
newLength++;
}
if(newLength > len)
{
break;
}
newStr += singleChar;
}
if(hasDot && strLength > len)
{
newStr += "...";
}
return newStr;
}
/* 2007-10-26 14:20 Get String Lenth(include chinese character) */
function GetStringLength(strObj)
{
return strObj.replace(/[^\x00-\xff]/g,"**").length;
}
function addMark(title,url) {
try{
if (window.sidebar) {
window.sidebar.addPanel(title, url,"");
} else if( document.all ) {
window.external.AddFavorite( url, title);
} else if( window.opera && window.print ) {
return true;
}
}catch(e)
{
alert("您的浏览器安全设置不允许该项操作")
}
}
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}
String.prototype.len=function()
{
return this.replace(/[^\x00-\xff]/g,'aa').length;
}
function StringBuilder(value)
{
this.strings = new Array("");
this.append(value);
}
// Appends the given value to the end of this instance.
StringBuilder.prototype.append = function (value)
{
if (value)
{
this.strings.push(value);
}
}
// Clears the string buffer
StringBuilder.prototype.clear = function ()
{
this.strings.length = 1;
}
// Converts this instance to a String.
StringBuilder.prototype.toString = function ()
{
return this.strings.join("");
}
//string format prototype
// sample: var test="my name is {0} {2} " ;
// alert(test.format('liang','zhonghua');
if (!String._FORMAT_SEPARATOR){
String._FORMAT_SEPARATOR = String.fromCharCode(0x1f);
String._FORMAT_ARGS_PATTERN = new RegExp('^[^' + String._FORMAT_SEPARATOR + ']*'
+ new Array(100).join('(?:.([^' + String._FORMAT_SEPARATOR + ']*))?'));
}
if (!String.format)
{
String.format = function (s){
return Array.prototype.join.call(arguments, String._FORMAT_SEPARATOR).
replace(String._FORMAT_ARGS_PATTERN, s);
}
}
if (!''.format)
{
String.prototype.format = function (){
return (String._FORMAT_SEPARATOR +
Array.prototype.join.call(arguments, String._FORMAT_SEPARATOR)).
replace(String._FORMAT_ARGS_PATTERN, this);
}
}
//end string format
function checkLoginByCookie()
{
var cookieId="AUTHTEST";
if(window.location.href.toLowerCase().indexOf("qidian.com") > -1)
{
cookieId="cmfuToken";
}
if((GetCookie(cookieId)!=null && GetCookie(cookieId).length > 0 ))
{
return true;
}
else
{
if(GetCookie('cmfu_al') != null && GetCookie('cmfu_al').length > 0)
{
return true;
}
}
return false;
}
function getUrlParam(name)
{
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)","i");
var r = window.location.search.substr(1).match(reg);
if (r!=null)
{
return unescape(r[2]);
}
else
{
return null;
}
}
function $(objName)
{
if(document.getElementById)
{
return document.getElementById(objName );
}
else if(document.layers)
{
return eval("document.layers['" + objName +"']");
}
else
{
return eval('document.all.' + objName);
}
}
function DateAdd(BaseDate, interval, DatePart)
{
var dateObj = new Date(BaseDate.replace("-",","));
var millisecond=1;
var second=millisecond*1000;
var minute=second*60;
var hour=minute*60;
var day=hour*24;
var year=day*365;
var newDate;
var dVal = new Date(dateObj)
var dVal=dVal.valueOf();
switch(DatePart)
{
case "ms": newDate=new Date(dVal+millisecond*interval); break;
case "s": newDate=new Date(dVal+second*interval); break;
case "mi": newDate=new Date(dVal+minute*interval); break;
case "h": newDate=new Date(dVal+hour*interval); break;
case "d": newDate=new Date(dVal+day*interval); break;
case "y": newDate=new Date(dVal+year*interval); break;
default: return escape("日期格式不对");
}
newDate = new Date(newDate);
return newDate.getFullYear() + "-" + (newDate.getMonth() + 1) + "-" + newDate.getDate() ;
}
//增加当前日期的天数
Date.prototype.AddDays=function (interval)
{
var dateObj = this;
var millisecond=1;
var second=millisecond*1000;
var minute=second*60;
var hour=minute*60;
var day=hour*24;
var year=day*365;
var newDate;
var dVal = new Date(dateObj)
var dVal=dVal.valueOf();
newDate=new Date(dVal+day*interval);
newDate = new Date(newDate);
return newDate
}
function SetCookie(name, value)
{
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2].toGMTString() : (new Date()).AddDays(30).toGMTString();;
var path = (argc > 3) ? argv[3] : "/";
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
var content = name + "=" + escape(value) + ";";
if(expires != null)
{
content += " expires=" + expires + ";";
}
if(path != null)
{
content += " path=" + path + ";";
}
if(domain != null)
{
content += " domain=" + domain + ";";
}
document.cookie = content;
}
function GetCookie(cookieName)
{
var cookieString = document.cookie;
var start = cookieString.indexOf(cookieName + '=');
// 加上等号的原因是避免在某些 Cookie 的值里有
// 与 cookieName 一样的字符串。
if (start == -1) // 找不到
return null;
start += cookieName.length + 1;
var end = cookieString.indexOf(';', start);
if (end == -1) return unescape(cookieString.substring(start));
return unescape(cookieString.substring(start, end));
}
/*文本框得到焦点*/
function TextBoxOnFocus(txtControl,strDefaultText)
{
if (txtControl.value==strDefaultText)
txtControl.value="";
}
/*文本框失去焦点*/
function TextBoxOnBlur(txtControl,strDefaultText)
{
if (txtControl.value.replace(/(^[\s]*)|([\s]*$)/g,"")=="")
txtControl.value=strDefaultText;
}
/*功能:弹出群发消息窗口*/
function MultiSendWin(subject,content)
{
var win =window.open(uploadURL+"?subject=" + subject + "&content=" +content,"","menubar=no,width=480,height=550,resizeable=no","");
return false;
}
/*功能:弹出留言窗口
function SpaceSendMsg(toUserId)
{
var win =window.open(spaceSendMsgURL+"?toUserId=" + toUserId,"","menubar=no,width=500,height=400,resizeable=no","");
return false;
}
*/
function ShowServerMessage(result)
{
eval(result.value);
}
//回车提交表单
function KeydownSubmitForm(btnId)
{
var btn=document.getElementById(btnId);
if (btn!=null&& event.keyCode== 13)
{
event.returnValue=false;
event.keyCode=9;
btn.click();
}
}
//ReadChapter -抵用券js
function MDown(Object){
Obj=Object.id
document.all(Obj).setCapture()
pX=event.x-document.all(Obj).style.pixelLeft;
pY=event.y-document.all(Obj).style.pixelTop;
}
function MMove(){
if(Obj!=''){
document.all(Obj).style.left=event.x-pX;
document.all(Obj).style.top=event.y-pY;
}
}
function MUp(){
if(Obj!=''){
document.all(Obj).releaseCapture();
Obj='';
}
}
//关闭抵用券信息
function LayerClose(divDiscount){
document.getElementById(divDiscount).style.visibility="hidden";
}
//显示抵用券信息
function LayerShow(divDiscount,discountPrize){
var prizeUI = document.getElementById(divDiscount);
prizeUI.style.left = screen.width-530;
prizeUI.style.top = screen.Height - 480;
prizeUI.style.visibility="visible";
document.getElementById("lblPrize1").innerHTML=discountPrize;
document.getElementById("lblPrize2").innerHTML=discountPrize;
window.setInterval("LayerClose('" + divDiscount + "')",15000);
}
//帮助masterpage用
function HideMenu(menuid)
{
var obj = document.getElementById(menuid);
if(obj.style.display == "none")
{
obj.style.display = "";
}
else
{
obj.style.display = "none";
}
if(obj.style.display == "")
{
var tmpId = "M0";
for(var i = 1 ; i {
var myid = tmpId + i;
if(myid != menuid)
{
document.getElementById(myid).style.display = "none";
}
}
}
}
/* div login */
function ShowLoginDiv()
{
var builder = new StringBuilder();
builder.append("
"); builder.append("登录"); builder.append(" | "); "); builder.append("×"); builder.append(" | ");
"); builder.append(""); builder.append(" | ");
//window.top.scrollTo(0,0);
document.getElementById("DivMask").style.height=document.body.scrollHeight;
document.getElementById("DivMask").style.width=document.body.scrollWidth;
document.getElementById("DivMask").style.display = 'block';
document.getElementById("DivLogin").style.display = "block";
document.getElementById("DivLogin").innerHTML = builder.toString();
ScrollDiv();
window.onscroll=ScrollDiv;
window.onresize=ScrollDiv;
window.onload=ScrollDiv;
}
function HideLoginMask()
{
document.getElementById("DivMask").style.display="none";
document.getElementById("DivLogin").style.display="none";
}
/*随屏幕滚动*/
function ScrollDiv()
{
if($("DivLogin"))
{
document.getElementById("DivLogin").style.top=(document.body.scrollTop+
(document.body.clientHeight-document.getElementById("DivLogin").offsetHeight)/2)+"px";
document.getElementById("DivLogin").style.left=(document.documentElement.scrollLeft+
(document.body.clientWidth-document.getElementById("DivLogin").offsetWidth)/2)+"px";
}
if($("AddMark"))
{
// if(!event )
// return;
$("AddMark").style.top=document.body.clientHeight + document.body.scrollTop-200
$("AddMark").style.left=document.body.clientWidth-56;
$("AddMark").style.display='';
// (document.body.clientHeight-$("AddMark").offsetHeight)/2)+"px";
if($("MonthVoteTip"))
{
//$("MonthVoteTip").style.top=document.body.scrollTop+document.body.clientHeight-$("MonthVoteTip").offsetHeight+"px";
$("MonthVoteTip").style.top = getPosition($("AddMark")).y - $("AddMark").offsetHeight + "px";
}
}
}
function AutoScroll()
{
window.onscroll=ScrollDiv;
window.onresize=ScrollDiv;
window.onload=ScrollDiv;
}
function getPosition(el)
{
for (var lx=0,ly=0;el!=null;lx+=el.offsetLeft,ly+=el.offsetTop,el=el.offsetParent);
return {x:lx,y:ly}
}
/* 2007-11-28 XuJian */
//截取字符串 包含中文处理
//(串,长度,增加...)
function subString(str, len, hasDot)
{
var newLength = 0;
var newStr = "";
var chineseRegex = /[^\x00-\xff]/g;
var singleChar = "";
var strLength = str.replace(chineseRegex,"**").length;
for(var i = 0;i {
singleChar = str.charAt(i).toString();
if(singleChar.match(chineseRegex) != null)
{
newLength += 2;
}
else
{
newLength++;
}
if(newLength > len)
{
break;
}
newStr += singleChar;
}
if(hasDot && strLength > len)
{
newStr += "...";
}
return newStr;
}
/* 2007-10-26 14:20 Get String Lenth(include chinese character) */
function GetStringLength(strObj)
{
return strObj.replace(/[^\x00-\xff]/g,"**").length;
}
function addMark(title,url) {
try{
if (window.sidebar) {
window.sidebar.addPanel(title, url,"");
} else if( document.all ) {
window.external.AddFavorite( url, title);
} else if( window.opera && window.print ) {
return true;
}
}catch(e)
{
alert("您的浏览器安全设置不允许该项操作")
}
}