• Javascript通用函数


      1window.onerror = ScriptErrorReport;
      2//window.onerror = ScriptErrorKill;
      3
      4// ** 脚本错误报告 ** //
      5function ScriptErrorReport(msg, surl, lineno)
      6{
      7    var strMsg = ("抱歉,网页在运行过程中出现脚本错误!\n"
      8          + "\n错误信息:" + msg
      9          + "\n所在行:" + lineno
     10          + "\n\n请尝试刷新页面!\n\n如果问题仍然存在,请与系统管理员联系!");
     11    alert(strMsg);
     12    return true;
     13}

     14
     15// ** 无脚本错误提示 ** //
     16function ScriptErrorKill()
     17{
     18    return true;
     19}

     20
     21// ** 向window.load添加函数 ** //
     22function WindowLoadEventAdd(fun)
     23{
     24    var fnLoad = window.onload;
     25    if(typeof(fnLoad) != "function")
     26    {
     27        window.onload = fun;
     28    }

     29    else
     30    {
     31        window.onload = function ()
     32        {
     33            fnLoad();
     34            fun();
     35        }

     36    }

     37}

     38
     39// ** 获取控件位置 ** //
     40function getObjectPosition(obj)
     41{
     42    var left = 0;
     43    var top = 0;
     44    var width = 0;
     45    var height = 0;
     46    
     47    if(typeof(obj) != "undefined")
     48    {
     49        var parent = obj;
     50        while(parent != document.body)
     51        {
     52            left += parent.offsetLeft;
     53            top += parent.offsetTop;
     54            if(parseInt(parent.currentStyle.borderLeftWidth) > 0)
     55            {
     56                left += parseInt(parent.currentStyle.borderLeftWidth);
     57            }

     58            if(parseInt(parent.currentStyle.borderTopWidth) > 0)
     59            {
     60                top += parseInt(parent.currentStyle.borderTopWidth);
     61            }

     62            parent = parent.offsetParent;
     63        }

     64        
     65        width = obj.offsetWidth;
     66        height = obj.offsetHeight;
     67    }

     68    
     69    return new Array(left, top, width, height);
     70}

     71
     72
     73// ** 打开新的窗口 ** //
     74function WindowOpen(URL, Width, Height, Left, Top)
     75{
     76    if(!Left > 0{ Left = 100;}
     77    if(!Top > 0{ Right = 100; } 
     78    if(!Width > 0{ Width = 650; }
     79    if(!Height > 0{ Height = 500; }
     80    
     81    var strSetting = "width=" + Width + ",height=" + Height + ",left=" + Left + ",top=" + Top
     82                   + ",toolbar=no,menubar=no,scrollbars=yes,resizable=yes,location=no,status=no";
     83    window.open(URL,"",strSetting)
     84}

     85
     86// ** 打开模式对话框 ** //
     87function ModalDialogShow(URL, Width, Height)
     88
     89    if(!Width > 0{ Width = 650; }
     90    if(!Height > 0{ Height = 500; }
     91    
     92    var strSetting = "dialogWidth:" + Width + "px;dialogHeight:" + Height 
     93                   + "px;center:yes;status:no;scroll:no;help:no;resizable:yes";
     94    
     95    var varReturn = window.showModalDialog(URL,"",strSetting);
     96    return varReturn;
     97}

     98
     99// ** 打开非模式对话框 ** //
    100function ModelessDialogShow(URL, Width, Height)
    101
    102    if(!Width > 0{ Width = 650; }
    103    if(!Height > 0{ Height = 500; }
    104    
    105    var strSetting = "dialogWidth:" + Width + "px;dialogHeight:" + Height 
    106                   + "px;center:yes;status:no;scroll:no;help:no;resizable:yes";
    107    
    108    window.showModelessDialog(URL,"",strSetting);
    109}

    110
    111//图片按比例缩放
    112var flag=false;
    113function resizeimg(ImgD)
    114{
    115    var image=new Image();
    116    var iwidth = 500//定义允许图片宽度
    117    var iheight = 380//定义允许图片高度
    118    image.src=ImgD.src;
    119    if(image.width>0 && image.height>0)
    120    {
    121        flag=true;
    122        if(image.width/image.height>= iwidth/iheight)
    123        {
    124            if(image.width>iwidth)
    125            
    126                ImgD.width=iwidth;
    127                ImgD.height=(image.height*iwidth)/image.width;
    128            }

    129        else
    130        {
    131            ImgD.width=image.width; 
    132            ImgD.height=image.height;
    133        }

    134        ImgD.alt=image.width+"×"+image.height;
    135        }

    136        else
    137        {
    138        if(image.height>iheight)
    139        
    140            ImgD.height=iheight;
    141            ImgD.width=(image.width*iheight)/image.height; 
    142        }
    else
    143        {
    144            ImgD.width=image.width; 
    145            ImgD.height=image.height;
    146        }

    147        ImgD.alt=image.width+"×"+image.height;
    148        }

    149        }

    150}
     
    151
    152    //重新登录
    153    function ReLogin()
    154    {
    155         window.parent.exit=false;
    156         alert("由于您的登录信息已过期,系统需要重新登录!");
    157         window.parent.location.href = "http://www.cnblogs.com/login.aspx?loginState=Relogin";
    158    }

    159    
    160    //键盘控制
    161    function CheckKey()
    162    {
    163        if(event.keyCode==13)
    164        {
    165            event.keyCode=9;
    166        }

    167    }

    168    
    169    //引入气泡提示JS文件
    170    function initScript(url)
    171    {        
    172        var scriptstyle = document.createElement("script");
    173        scriptstyle.setAttribute("language","javascript");
    174        scriptstyle.setAttribute("type","text/javascript");        
    175        scriptstyle.setAttribute("src",url);    
    176        document.getElementsByTagName("head")[0].appendChild(scriptstyle);
    177        alert("dd");
    178    }
      1//页面加载时的提示
      2    //by HambyWu
      3    //2008-05-11
      4    function showloading()
      5    {
      6    document.getElementById('ifrmBack').style.display='block';
      7    document.getElementById('divPopup').style.display='block';
      8    }

      9    
     10    function loadclick()
     11    {
     12        document.getElementById("btnload").click();
     13    }

     14    
     15    //设置页面上所有textbox和dropdownlist的onkeydown
     16    //响应回车事件,变为Tab
     17    //By Guanyb
     18    //2007-11-13
     19    function findControlAllSetTab()
     20    {
     21        var inputs=document.getElementsByTagName("input");
     22        var drop=document.getElementsByTagName("SELECT");
     23        for(j=0;j<inputs.length;j++)
     24        {
     25            if(inputs[j].type=="text")
     26            {
     27                inputs[j].onkeydown=function()
     28                {
     29                    if(event.keyCode==13)
     30                    {
     31                        event.keyCode=9;
     32                    }

     33                }

     34            }

     35        }

     36        for(i=0;i<drop.length;i++)
     37        {
     38            if(drop[i].tagName.toUpperCase()=="SELECT")
     39            {
     40                drop[i].onkeydown=function()
     41                {
     42                    if(event.keyCode==13)
     43                    {
     44                        event.keyCode=9;
     45                    }

     46                }

     47            }

     48        }

     49    }

     50    
     51    //为每个下拉列表框应用样式
     52    function setStyle_select()
     53    {
     54        var drop=document.getElementsByTagName("SELECT");
     55        for(var i=0;i<drop.length;i++)
     56        {
     57            if(!!drop[i])
     58            {
     59                drop[i].onfocus= function()
     60                {
     61                    fos(this);
     62                }

     63                drop[i].onblur=function()
     64                {
     65                    blu(this);
     66                }

     67            }

     68        }

     69    }

     70    
     71    //为每个文本框应用样式
     72    function setStyle_input()
     73    {
     74        var drop=document.getElementsByTagName("input");
     75        var txt=document.getElementsByTagName("textarea");
     76        for(var i=0;i<drop.length;i++)
     77        {
     78            if(!!drop[i])
     79            {
     80                if(drop[i].type=="text")
     81                {
     82                    
     83                    //if(drop[i].id.toUpperCase().indexOf("DATE")==-1)
     84                    //{
     85                    drop[i].onfocus= function()
     86                    {
     87                        fos(this);
     88                    }

     89                    drop[i].onblur=function()
     90                    {
     91                        blu(this);
     92                    }

     93                    //}
     94                }

     95            }

     96        }

     97        for(var i=0;i<txt.length;i++)
     98        {
     99            if(!!txt[i])
    100            {
    101                if(txt[i].type=="textarea")
    102                {
    103
    104                    txt[i].onfocus= function()
    105                    {
    106                        fos(this);
    107                    }

    108                    txt[i].onblur=function()
    109                    {
    110                        blu(this);
    111                    }

    112                }

    113            }

    114        }

    115    }

    116    
    117//得到焦点文本的颜色
    118function  fos(obj)
    119{
    120    obj.style.backgroundColor='#ffffcc';
    121}

    122
    123//失去焦点文本的颜色
    124function  blu(obj)
    125{
    126    obj.style.backgroundColor='#ffffff' ;
    127}
         
    128
    129function GetFocus(obj)
    130{
    131    var con = document.getElementById(obj);
    132    if(!!con)
    133    {
    134        con.focus();
    135        return true;
    136    }

    137    else
    138    {
    139        alert("对象不能为空!---setFocus");
    140        return false;
    141    }

    142}

    143
    144//使光标在文本的后面
    145function SetTextBehind(obj)
    146{
    147    if(!!obj)
    148    {
    149        var text=obj.createTextRange();
    150        text.collapse(false);
    151        text.select();
    152        return true;
    153    }

    154}

    155
    156//
    157function AutoInput(obj)
    158{
    159    if(!!obj)
    160    {
    161        if(obj.value.trim().length==0)
    162        {
    163            obj.value="粤A";
    164            SetTextBehind(obj);
    165        }

    166    }

    167}

    168
    169                
    170function parentReload()
    171 {
    172    window.dialogArguments.location.href=window.dialogArguments.location.href;
    173 }

    174
    175function objUpper(obj)
    176{
    177    if(!!obj)
    178    {
    179        //屏蔽标点符号
    180        var str=/[.;:'",~!@#$%^&*()+|\\=/?><,。;‘《》?“:!·#¥%……—*()、]/g;
    181        obj.value=obj.value.toUpperCase().replace(str,'');
    182        return true;
    183
    184    }

    185}

    186
    187function objFloat(obj)
    188{
    189    if(!!obj)
    190    {
    191        if(isNaN(obj.value))
    192        {
    193            obj.value="";
    194        }

    195    }

    196}

    197
    198function objInt(obj)
    199{
    200    if(!!obj)
    201    {
    202        obj.value=obj.value.replace(/[^\d]/g,'');
    203        return true;
    204    }

    205}
            
    206
    207//判断机动车登记日期的合法性
    208function ValidDate(sDate,AddYear)
    209{
    210    var d=sDate.replace(/\-/g,"/") ;
    211    var t=new Date(d);
    212    var n=new Date();
    213    n.setFullYear(n.getFullYear()+AddYear);
    214    if(t>n)
    215    {
    216        return false;
    217    }

    218    return true;
    219}

    220            
    221 //判断日期有效性
    222function isValidDate(dateStr) 
    223{
    224    try
    225    {
    226        var r=dateStr.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
    227        if (r==null)
    228        {
    229            return false;
    230        }

    231        var d = new Date(r[1],r[3]-1,r[4]); 
    232        return (d.getFullYear()==r[1&& (d.getMonth()+1)==r[3&& d.getDate()==r[4]);
    233    }

    234    catch(e)
    235    {
    236        return false;
    237    }

    238}

    239
    240//验证中文和全角符号
    241function HaveChinese(s)
    242{   
    243    if   (s==null)
    244        return   true;   
    245    if   (s.length==0)
    246        return   true;   
    247    var   reg   =   /[\u4E00-\u9FA5]|[\uFE30-\uFFA0]/gi;   
    248    if   (reg.test(s))
    249    {   
    250        return   false;   
    251    }
       
    252        return   true;   
    253  }

    254  
    255//去掉字符串前后空格
    256function trim(s)
    257{   
    258  return s.replace(/(^\s*)|(\s*$)/g,"");   
    259}
         
    260
    261function trim1(myStr)
    262{
    263    return ltrim(rtrim(myStr));
    264}

    265
    266String.prototype.trim=function()
    267
    268    return this.replace(/(^\s*)|(\s*$)/g, "");
    269}

    270
    271//去掉myStr左边的空格
    272function ltrim(myStr)
    273{
    274    var strTemp;
    275    strTemp = myStr;
    276    while ((strTemp!="")&&(strTemp.substr(0,1)==" "))
    277    {
    278        strTemp = strTemp.substr(1,strTemp.length - 1);
    279    }

    280    return strTemp;
    281}

    282
    283//去掉myStr右边的空格
    284function rtrim(myStr)
    285{
    286    var strTemp;
    287    strTemp = myStr;
    288    while ((strTemp!="")&&(strTemp.substr(strTemp.length -1,1)==" "))
    289    {
    290        strTemp = strTemp.substr(0,strTemp.length - 1);
    291    }

    292    return strTemp;
    293}

    294        
    295function regInput(obj, reg, inputStr)
    296{
    297    var docSel    = document.selection.createRange()
    298    if (docSel.parentElement().tagName != "INPUT")    
    299    return false
    300    oSel = docSel.duplicate()
    301    oSel.text = ""
    302    var srcRange    = obj.createTextRange()
    303    oSel.setEndPoint("StartToStart", srcRange)
    304    var str = oSel.text + inputStr + srcRange.text.substr(oSel.text.length)
    305    return reg.test(str)
    306}
      1//--------------------------------------------
      2//等待提示
      3//2008-05-12
      4//By HambyWu
      5//--------------------------------------------
      6//初始化,在页面加载时调用
      7function initWaiting(left, top, weight, height)
      8{
      9    if(isNaN(left))
     10        left = 50;
     11    if(isNaN(top))
     12        top = 10;
     13    if(isNaN(weight))
     14        weight = 200;
     15    if(isNaN(height))
     16        height = 30;
     17    
     18    var style = "background: #FFFFE1; border: 1px solid #A9D3F2; filter: alpha(opacity=90);" +
     19                "position: absolute; left: " + left + "px; top: " + top + "px;  " + weight + "px; height: " + height + "px;" +
     20                "text-align: center; padding-top: 5px; display: none;";
     21                
     22    var text = "正在执行中,请稍候"
     23    
     24    var div = document.createElement("div");
     25    
     26    div.setAttribute("id","divWaiting");
     27    div.style.cssText = style;
     28       div.innerText = text;
     29    
     30    document.body.appendChild(div);
     31       
     32}

     33//显示,在按钮点击时调用
     34function showWaiting()
     35{
     36    var div = document.getElementById('divWaiting');
     37    if(!!div)
     38        div.style.display = "block";
     39}

     40//隐藏
     41function hiddenWaiting()
     42{
     43    var div = document.getElementById('divWaiting');
     44    if(!!div)
     45        div.style.display = "none";
     46}

     47
     48//----------------------------------------------
     49// JavaScript 验证函数
     50//2008-05-12
     51//By HambyWu
     52//----------------------------------------------
     53
     54// ** 身份证号验证 ** //
     55function IDCardNumberCheck(str)
     56{
     57    return (/^\d{15}(?:|(?:\d{3}|\d{2}X))$/.test(str));
     58}

     59
     60// ** 整数验证 ** //
     61function IntegerCheck(str)
     62{
     63    return (/^\d+$/.test(str));
     64}

     65
     66// ** 小数验证 ** //
     67function NumericCheck(str)
     68{
     69    return (/^-?\d+(\.\d+)?$/.test(str));
     70}

     71
     72// ** 短日期验证 ** //
     73function ShortDateCheck(str)
     74{
     75  if (str.length == 0return true;
     76  var r = str.match(/^(\d{1,4})(-|\.)(\d{1,2})\2(\d{1,2})$/); 
     77  if(r==nullreturn false
     78  var d= new Date(r[1], r[3]-1, r[4]); 
     79  return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
     80}

     81
     82
     83// ** 产权证号/他项权证号 验证 ** //
     84function CerCodeCheck(str)
     85{
     86  return (/^[A-Za-z]d{6}$/.test(str))
     87}

     88
     89
     90//=============================================================
     91//Array 对象 方法扩展
     92//2008-05-12
     93//By HambyWu
     94//
     95//数组 判断是否存在元素 方法
     96if(!Array.prototype.has)
     97{
     98    Array.prototype.has = function (val)
     99    {
    100        var i;
    101        for(i = 0; i < this.length; i++)
    102        {
    103            if(this[i] == val)
    104            {
    105                return true;
    106            }

    107        }

    108        return false;
    109    }

    110}

    111
    112//数组 按索引移除元素 方法
    113if(!Array.prototype.removeAt)
    114{
    115    Array.prototype.removeAt = function (index)
    116    {
    117        if(index >= 0 && index < this.length)
    118        {
    119            var i;
    120            for(i = index; i < this.length - 1; i++)
    121            {
    122                this[i] = this[i + 1];
    123            }

    124            this.length -= 1;
    125            return true;
    126        }

    127        else
    128        {
    129            return false;
    130        }

    131    }

    132}

    133
    134//数组 按值移除元素 方法
    135if(!Array.prototype.removeVal)
    136{
    137    Array.prototype.removeVal = function (val)
    138    {
    139        var i;
    140        for(i = 0; i < this.length; i++)
    141        {
    142            if(this[i] == val)
    143            {
    144                return this.removeAt(i);
    145            }

    146        }

    147        return false;
    148    }

    149}

    150
    151//数组 移除所有元素 方法
    152if(!Array.prototype.removeAll)
    153{
    154    Array.prototype.removeAll = function()
    155    {
    156        this.length = 0;
    157        return true;
    158    }

    159}

    160
    161//数组 寻找元素索引 方法
    162if(!Array.prototype.indexOf)
    163{
    164    Array.prototype.indexOf = function(val)
    165    {
    166        var i;
    167        for(i = 0; i < this.length; i++)
    168        {
    169            if(this[i] == val)
    170            {
    171                return i;
    172            }

    173        }

    174        return -1;
    175    }

    176}

    177//===============================================================
    178
    179
    我的淘宝店:http://hamby.taobao.com
  • 相关阅读:
    ArrayList和Vector的区别?HashMap和Hashtable的区别?
    试题:关键字public, private, protected的区别?以及不写时默认是什么?
    试题:用JavaScript实现密码验证功能
    RPC和RMI的区别(Difference Between RPC and RMI)
    js中从blob提取二进制
    netty 3.9.2 UDP协议服务器和客户端DEMO
    Java NIO的多路复用及reactor
    android屏蔽home键的实现
    搜索引擎对相似图片搜索识别的原理(一)
    代理模式(设计模式)
  • 原文地址:https://www.cnblogs.com/hambywu/p/1205006.html
Copyright © 2020-2023  润新知