今天有人提出了一个小需求,需要将网站的首页设置为用户浏览器的默认首页,并且网站每个页面可以让用户在浏览器里收藏。在网上找了很多的代码,此时效果不是很理想。不过也记录一下吧,有需要的可以自己弄到本地研究一下。

JS设为首页的代码

HTML代码

<a href="javascript:void(0);" onclick="SetHome(this);">设为首页</a>

JS代码

<script>
function SetHome(obj) {
    var url = 'http://www.feiniaomy.com';
    try {
        obj.style.behavior = 'url(#default#homepage)';
        obj.setHomePage(url);
    } catch (e) {
        if (window.netscape) {
            try {
                netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
            } catch (e) {
                alert("抱歉,此操作被浏览器拒绝!\n\n请在浏览器地址栏输入“about:config”并回车然后将[signed.applets.codebase_principal_support]设置为'true'");
            }
        } else {
            alert("抱歉,您所使用的浏览器无法完成此操作。\n\n您需要手动将【" + url + "】设置为首页。");
        }
    }
}
</script>

此代码有点兼容性,如果无法把网站的url地址设置成浏览器的默认首页,会弹出提示,让用户手动修改

js页面收藏

html代码

<a href="javascript:void(0);" onclick="AddFavorite()">收藏本站</a>

js代码

<script>
function AddFavorite() {
    var title = '飞鸟慕鱼博客';
    var url = 'http://www.feiniaomy.com';
    try {
        window.external.addFavorite(url, title);
    }
    catch (e) {
        try {
            window.sidebar.addPanel(title, url, "");
        }
        catch (e) {
            alert("抱歉,您所使用的浏览器无法完成此操作。\n\n加入收藏失败,请使用Ctrl+D进行添加");
        }
    }
}
</script>

注意:AddFavorite()函数里面的title的值与url的值都可以改成自己,或通过其它方法自动获取。