摘自启点的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 相关文章推荐
用js实现下载远程文件并保存在本地的脚本
May 06 Javascript
js word表格动态添加代码
Jun 07 Javascript
Jquery 例外被抛出且未被接住原因介绍
Sep 04 Javascript
window.open不被拦截的简单实现代码(推荐)
Aug 04 Javascript
JavaScript对象创建模式实例汇总
Oct 03 Javascript
微信小程序 出现错误:{&quot;baseresponse&quot;:{&quot;errcode&quot;:-80002,&quot;errmsg&quot;:&quot;&quot;}}解决办法
Feb 23 Javascript
微信小程序实现缓存根据不同的id来进行设置和读取缓存
Jun 12 Javascript
vue proxyTable 接口跨域请求调试的示例
Sep 12 Javascript
JS闭包的几种常见形式实例详解
Sep 16 Javascript
IE9 elementUI文件上传的问题解决
Oct 17 Javascript
ES6 Object.assign()的用法及其使用
Jan 18 Javascript
javascript canvas实现雨滴效果
Jun 09 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桌面中心(一) 创建数据库
2007/03/11 PHP
Yii框架关联查询with用法分析
2014/12/02 PHP
PHP isset()与empty()的使用区别详解
2017/02/10 PHP
Laravel实现表单提交
2017/05/07 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
2020/05/14 PHP
根据选择不同的下拉值出现相对应的文本输入框
2013/08/01 Javascript
jQuery获取checkboxlist的value值的方法
2015/09/27 Javascript
详解js中的apply与call的用法
2016/07/30 Javascript
JavaScript 网页中实现一个计算当年还剩多少时间的倒数计时程序
2017/01/25 Javascript
socket.io实现在线群聊功能
2017/04/07 Javascript
微信小程序之滚动视图容器的实现方法
2017/09/26 Javascript
jQuery与原生JavaScript选择HTML元素集合用法对比分析
2019/11/26 jQuery
JS实现百度搜索框关键字推荐
2020/02/17 Javascript
vscode自定义vue模板的实现
2021/01/27 Vue.js
[03:55]DOTA2完美大师赛选手传记——LFY.MONET
2017/11/18 DOTA
Python cookbook(数据结构与算法)实现优先级队列的方法示例
2018/02/18 Python
Python中pandas模块DataFrame创建方法示例
2018/06/20 Python
使用Template格式化Python字符串的方法
2019/01/22 Python
PyQt5重写QComboBox的鼠标点击事件方法
2019/06/25 Python
python pytest进阶之conftest.py详解
2019/06/27 Python
Python实现微信小程序支付功能
2019/07/25 Python
python requests库爬取豆瓣电视剧数据并保存到本地详解
2019/08/10 Python
解决Django layui {{}}冲突的问题
2019/08/29 Python
Python程序暂停的正常处理方法
2019/11/07 Python
Django-xadmin+rule对象级权限的实现方式
2020/03/30 Python
解决python ThreadPoolExecutor 线程池中的异常捕获问题
2020/04/08 Python
在python中使用nohup命令说明
2020/04/16 Python
Python计算矩阵的和积的实例详解
2020/09/10 Python
英国泰坦旅游网站:全球陪同游览,邮轮和铁路旅行
2016/11/29 全球购物
求职信的最佳写作思路
2014/02/01 职场文书
班风学风建设方案
2014/05/06 职场文书
化工工艺设计求职信
2014/06/25 职场文书
三严三实学习心得体会
2014/10/13 职场文书
2016年元旦寄语
2015/08/17 职场文书
Mysql中存储引擎的区别及比较
2021/06/04 MySQL
css实现两栏布局,左侧固定宽,右侧自适应的多种方法
2021/08/07 HTML / CSS