常用和必备的Javascript片段

本文介绍了一段JavaScript脚本,用于检测用户的浏览器类型及版本,并实现设置主页和添加收藏夹的功能。通过正则表达式匹配,脚本能识别多种浏览器,包括IE、Firefox、Chrome等,并针对不同浏览器提供特定的操作。
// JavaScript Document
var BROWSER = {};
var USERAGENT = navigator.userAgent.toLowerCase();
browserVersion({'ie':'msie','firefox':'','chrome':'','opera':'','safari':'','mozilla':'','webkit':'','maxthon':'','qq':'qqbrowser'});
if(BROWSER.safari) {
    BROWSER.firefox = true;
}
BROWSER.opera = BROWSER.opera ? opera.version() : 0;

HTMLNODE = document.getElementsByTagName('head')[0].parentNode;
if(BROWSER.ie) {
    BROWSER.iemode = parseInt(typeof document.documentMode != 'undefined' ? document.documentMode : BROWSER.ie);
    HTMLNODE.className = 'ie_all ie' + BROWSER.iemode;
}

function setHomepage(sURL) {
     if(BROWSER.ie){
         document.body.style.behavior = 'url(#default#homepage)';
         document.body.setHomePage(sURL);
     } else {
         alert("非 IE 浏览器请手动将本站设为首页");
     }
}

function addFavorite(url, title) {
    try {
        window.external.addFavorite(url, title);
    } catch (e){
        try {
            window.sidebar.addPanel(title, url, '');
            } catch (e) {
            alert("请按 Ctrl+D 键添加到收藏夹");
        }
    }
}

function browserVersion(types) {
    var other = 1;
    for(i in types) {
        var v = types[i] ? types[i] : i;
        if(USERAGENT.indexOf(v) != -1) {
            var re = new RegExp(v + '(\\/|\\s)([\\d\\.]+)', 'ig');
            var matches = re.exec(USERAGENT);
            var ver = matches != null ? matches[2] : 0;
            other = ver !== 0 && v != 'mozilla' ? 0 : other;
        }else {
            var ver = 0;
        }
        eval('BROWSER.' + i + '= ver');
    }
    BROWSER.other = other;
}

function setHomepg(sURL){
    oHomePage.setHomePage(sURL);
    event.returnValue = false;
}

function $my(id) {
    return !id ? null : document.getElementById(id);
}

function addClass(elm,newClass){  
    var classes = elm.className.split(' ');
    var classIndex=hasClass(elm,newClass);
    if(classIndex==-1)classes.push(newClass);
    elm.className = classes.join(' ');
}

function hasClass(elm,className){
    var classes = elm.className.split(' ');
    for(var a in classes){
        if(classes[a]==className)return a;
    }
    return -1;
}

function delClass(elm,className){
    var classes = elm.className.split(' ');
    var classIndex=hasClass(elm,className);
    if(classIndex!=-1)classes.splice(classIndex,1);
    elm.className=classes.join(' ');
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值