常用的高效JS代码收集

设为首页

function sethome(obj){obj.style.behavior='url(#default#homepage)';obj.setHomePage('http://www.gescms.net/');}

加入收藏

function addfav(){var sTitle = window.document.title;var sUrl = window.location.href;try {window.external.addFavorite(sUrl,sTitle);}catch(e){try{window.sidebar.addPanel(sTitle, sUrl, "");} catch(e){alert("加入收藏失败,请使用Ctrl+D进行添加");}}}

判断浏览器

/webkit/i.test(navigator.userAgent);//webkit内核

/MSIE/i.test(navigator.userAgent);//IE内核

替换字符串中所有的HTML标签

yourstr.replace(/<\/p>/g,"_br_").replace(/<[^>]+>/g,"").replace(/_br_/g,"<br />")//替换段落标签为回车标签,去除其余所有的HTML标签

将"-","_"紧邻的字符串驼峰处理

function toCamelCase(source) {
    if (source.indexOf('-') < 0 && source.indexOf('_') < 0) {
        return source;
    }
    return source.replace(/[-_][^-_]/g, function (match) {
        return match.charAt(1).toUpperCase();
    });
};

简单的横向无缝滚动代码

var speed=10;
mar2.innerHTML  =  mar1.innerHTML;
function  Marquee(){
   if(mar2.offsetWidth-marqdiv.scrollLeft<=0){
         marqdiv.scrollLeft-=mar1.offsetWidth;
   }
   else{
         marqdiv.scrollLeft++;
   }
}
var MyMar=setInterval(Marquee,speed);
marqdiv.onmouseover=function() {clearInterval(MyMar)};
marqdiv.onmouseout=function() {MyMar=setInterval(Marquee,speed)};

对应的HTML代码

<div id="marqdiv">
            <table width="100%" border="0" cellpadding="0" cellspacing="0" cellspace="0">
              <tbody>
                <tr>
                  <td valign="top" id="mar1">
                    <table class="marqueelist">
                       <tr>
                        <td>
                               <a href="Default.aspx?p=view_19_1_0_null" target="_blank"><img src="/Upload/1.jpg" title="标题一"/></a>
                        </td>
                        <td>
                               <a href="Default.aspx?p=view_19_3_0_null" target="_blank"><img src="/Upload/2.jpg" title="标题二"/></a>
                        </td>
                       </tr>
                      </table>
                    </td>
                  <td id="mar2" valign="top" width="1"></td>
                </tr>
              </tbody>
            </table>
        </div>

获取浏览器版本

function getiev() {
    var userAgent = window.navigator.userAgent.toLowerCase();
    $.browser.msie8 = $.browser.msie && /msie 8\.0/i.test(userAgent);
    $.browser.msie7 = $.browser.msie && /msie 7\.0/i.test(userAgent);
    $.browser.msie6 = !$.browser.msie8 && !$.browser.msie7 && $.browser.msie && /msie 6\.0/i.test(userAgent);
    var v;
    if ($.browser.msie8) {
        v = 8;
    }
    else if ($.browser.msie7) {
        v = 7;
    }
    else if ($.browser.msie6) {
        v = 6;
    }
    else { v = -1; }
    return v;
}

 动态载入Js

function ansyloadJS(url, onload) {
    var domscript = document.createElement('script');
    domscript.src = url;
    if (!!onload) {
        domscript.afterLoad = onload;
        domscript.onreadystatechange = function () {
            if (domscript.readyState == "loaded" || domscript.readyState == "complete" || domscript.readyState == "interactive") {
                domscript.afterLoad();
            }
        }
        domscript.onload = function () {
            if (!!domscript.afterLoad)
                domscript.afterLoad();
        }
    }
    document.getElementsByTagName('head')[0].appendChild(domscript);
}

 JS中Replace函数的用法:

 1 <script language="javascript">    
 2     var str="他今年22岁,她今年20岁,他的爸爸今年45岁,她的爸爸今年44岁,一共有4人"   
 3     function test($1){
 4         //该方法共有3个参数,前2个参数都是当前匹配值,最后个参数代表当前值在字符串中的位置
 5         //显示3个参数的值:alert(arguments[0]+'-'+arguments[1]+'-'+arguments[2]);}
 6         var gyear=(new Date()).getYear()-parseInt($1)+1;
 7         return $1+"("+gyear+"年出生)";
 8     }    
 9     var reg=new RegExp("(\\d+)岁","g");    
10     var newstr=str.replace(reg,test);    
11     document.write(str);    
12     document.write("<br/>"); 
13     document.write(newstr);    
14 </script> 

 JS一维数组内容排序:

 1 // type 参数 
 2 // 0 字母顺序(默认) 
 3 // 1 大小 比较适合数字数组排序
 4 // 2 拼音 适合中文数组
 5 // 3 乱序 有些时候要故意打乱顺序,呵呵
 6 // 4 带搜索 str 为要搜索的字符串 匹配的元素排在前面
 7 Array.prototype.SortBy = function(type,str){ 
 8     switch (type)
 9     { 
10         case 0:this.sort(); break;
11         case 1:this.sort(function(a,b){ return a-b; }); break;
12         case 2:this.sort(function(a,b){ return a.localeCompare(b) }); break;
13         case 3:this.sort(function(){ return Math.random()>0.5?-1:1; }); break;
14         case 4:this.sort(function(a,b){ return a.indexOf(str)==-1?1:-1; }); break;
15         default:this.sort();
16     }
17 }
原文地址:https://www.cnblogs.com/xyd21c/p/2253690.html