@ JavaScript
如何在网页上实现加入收藏夹或书签功能

核心代码

if (window.external && ('AddFavorite' in window.external)) {
    // IE 收藏夹
    window.external.AddFavorite(bookmarkURL, bookmarkTitle);
} else if (window.sidebar && window.sidebar.addPanel) {
    // Firefox <=22
    window.sidebar.addPanel(bookmarkTitle, bookmarkURL, '');
} else if ((window.sidebar && /Firefox/i.test(navigator.userAgent)) || (window.opera && window.print)) {
    // Firefox 23+ 和 Opera <=14
    it.setAttribute("href",bookmarkURL);
    it.setAttribute("title",bookmarkTitle);
    it.setAttribute("rel","sidebar");
    return true;
}  else {
    // 其它浏览器 (主要是 WebKit & Blink - Safari, Chrome, Opera 15+)
    alert('按 ' + (/Mac/i.test(navigator.userAgent) ? 'Cmd' : 'Ctrl') + '+D 键将本页加入书签。');
}
visibility:hidden 和 display:none的区别及元素可见性判定

概要

display:none意味着相关元素不会出现在页面上(尽管仍可以通过dom与它进行交互)。所在页面上并没有给该元素分配空间。而visibility:hidden则与之不同,visibility:hidden只是意味着元素不可见,页面上不但给元素分配了空间,也对元素进行了渲染,只是元素不可见而已。

在JavaScrip的对象中如何获取第一个属性值?

问题

在JavaScript中,在不知道对象属性名称的前提下,有没有一种优雅的方式来访问对象的第一个属性呢?

var keys = Object.keys(books);
console.log(books[keys[0]]);

利用该方法,可以很优雅获取对象的第一个属性值,也可以获取任意位置的属性值,但却需要构建一个包括所有键值的数组,这是额外的开销。

也谈利用JavaScript做浏览器类型及版本检测

检测函数

function(){
    var ua= navigator.userAgent, tem,
        M= ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
    if(/trident/i.test(M[1])){
        tem=  /\brv[ :]+(\d+)/g.exec(ua) || [];
        return 'IE '+(tem[1] || '');
    }
    if(M[1]=== 'Chrome'){
        tem= ua.match(/\b(OPR|Edge)\/(\d+)/);
        if(tem!= null) return tem.slice(1).join(' ').replace('OPR', 'Opera');
    }
    M= M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];
    if((tem= ua.match(/version\/(\d+)/i))!= null) M.splice(1, 1, tem[1]);
    return M.join(' ');
}
$ 热门标签
$ 声明
本站所有代码及文字都是作者精心汇编整理而成,转载代码及文字请明确注明出处和作者名称。