摘自启点的main.js


Posted in Javascript onApril 20, 2008

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 <= 9; i++)
        {
            var myid = tmpId + i;
            if(myid != menuid)
            {
                document.getElementById(myid).style.display = "none";
            }
        }
    }
}

/* div login */
function ShowLoginDiv()
{
    var builder = new StringBuilder();
    builder.append("<table border='0' cellpadding='0' cellspacing='0'>");
    builder.append("<tr class='TitleTR'>");
    builder.append("<td align='left'>");
    builder.append("登录");
    builder.append("</td>");
    builder.append("<td align='right'>");
    builder.append("<span title='关闭' onclick='HideLoginMask();'>×</span>");
    builder.append("</td>");
    builder.append("</tr>");
    builder.append("<tr>");
    builder.append("<td colspan='2'>");
    builder.append("<iframe src='/DivUserLogin.aspx' width='225px' height='125px' name='loginFrame' ");//src=''
    builder.append("id='loginFrame' frameborder='0' scrolling='no'></iframe>");
    builder.append("</td>");
    builder.append("</tr>");
    builder.append("</table>");    
    //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 < strLength;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("您的浏览器安全设置不允许该项操作")
}
}

Javascript 相关文章推荐
防止页面被iframe(兼容IE,Firefox火狐)
Jul 04 Javascript
Js 冒泡事件阻止实现代码
Jan 27 Javascript
flash调用js中的方法,让js传递变量给flash的办法及思路
Aug 07 Javascript
jquery中加载图片自适应大小主要实现代码
Aug 23 Javascript
JavaScript字符串常用类使用方法汇总
Apr 14 Javascript
MVC Ajax Helper或Jquery异步加载部分视图
Nov 29 Javascript
jquery分隔Url的param方法(推荐)
May 25 Javascript
Javascript6中字符串的四个新用法分享
Sep 11 Javascript
详解vue中使用express+fetch获取本地json文件
Oct 10 Javascript
vue-cli中的babel配置文件.babelrc实例详解
Feb 22 Javascript
使用Vue.set()方法实现响应式修改数组数据步骤
Nov 09 Javascript
JS数据类型STRING使用实例解析
Dec 18 Javascript
不懂JavaScript应该怎样学
Apr 16 #Javascript
JavaScript修改css样式style
Apr 15 #Javascript
javascript的键盘控制事件说明
Apr 15 #Javascript
关于document.cookie的使用javascript
Apr 11 #Javascript
javascript比较文档位置
Apr 08 #Javascript
js函数般调用正则
Apr 08 #Javascript
javascript背投广告代码的完善
Apr 08 #Javascript
You might like
php学习笔记(三)操作符与控制结构
2011/08/06 PHP
openflashchart 2.0 简单案例php版
2012/05/21 PHP
PHP命名空间(Namespace)的使用详解
2013/05/04 PHP
php自定义函数截取汉字长度
2014/05/15 PHP
php实现微信模板消息推送
2018/03/30 PHP
Yii2语言国际化的配置教程
2018/08/19 PHP
心扬JS分页函数代码
2010/09/10 Javascript
jquery 鼠标滑动显示详情应用示例
2014/01/24 Javascript
使用jquery操作session方法分享
2015/01/22 Javascript
JS实现“隐藏与显示”功能(多种方法)
2016/11/24 Javascript
Bootstrap轮播图的使用和理解4
2016/12/14 Javascript
浅谈Javascript事件对象
2017/02/05 Javascript
详解本地Node.js服务器作为api服务器的解决办法
2017/02/28 Javascript
JSON.stringify()方法讲解
2019/01/31 Javascript
小程序页面动态配置实现方法
2019/02/05 Javascript
五分钟搞懂Vuex实用知识(小结)
2019/08/12 Javascript
JavaScrip如果基于url实现图片下载
2020/07/03 Javascript
Python打造出适合自己的定制化Eclipse IDE
2016/03/02 Python
Python人脸识别初探
2017/12/21 Python
python 正则表达式贪婪模式与非贪婪模式原理、用法实例分析
2019/10/14 Python
简单了解python装饰器原理及使用方法
2019/12/18 Python
在flask中使用python-dotenv+flask-cli自定义命令(推荐)
2020/01/05 Python
golang/python实现归并排序实例代码
2020/08/30 Python
Pytorch - TORCH.NN.INIT 参数初始化的操作
2021/02/27 Python
英国最出名高街品牌:Forever Unique
2018/02/24 全球购物
学生会竞选自荐信
2013/10/12 职场文书
汽车驾驶求职信
2013/10/25 职场文书
转党组织关系介绍信
2014/01/08 职场文书
大学考试作弊检讨书
2014/01/30 职场文书
餐厅总厨求职信
2014/03/04 职场文书
个人贷款承诺书
2014/03/28 职场文书
厉行勤俭节约倡议书
2014/05/16 职场文书
文艺演出策划方案
2014/06/07 职场文书
在HTML5 localStorage中存储对象的示例代码
2021/04/21 Javascript
Python绘制散乱的点构成的图的方法
2022/04/21 Python
MySQL数据库安装方法与图形化管理工具介绍
2022/05/30 MySQL