本文提供一段JavaScript代码,用于实现网页的设为首页和加入收藏夹功能。代码通过判断浏览器类型,分别调用IE的window.external.addFavorite和document.body.style.behavior,以及火狐的window.sidebar.addPanel和netscape.security.PrivilegeManager,从而兼容主流浏览器。
JavaScript实现兼容IE与火狐的设为首页和加入收藏功能
代码示例如下:
<html>
<head>
<title>JavaScript实现设为首页与加入收藏夹(兼容IE及Firefox)</title>
<script>
//参数说明:url为待收藏链接;title为收藏名称
function AddFavorite(url,title)
{
//若未提供url或title,则默认使用当前页面的URL和标题。
if(!(url&&title))
{
url=document.URL;
title=document.title;
}
if (document.all)//针对IE浏览器
{
window.external.addFavorite(url,title);
}
else if (window.sidebar)//针对Firefox浏览器
{
window.sidebar.addPanel(title, url, "");
}
}
//参数说明:url为待设为首页的链接
function SetHomepage(url)
{
//若未提供url,则默认使用当前页面URL。
if(!url)
{
url=document.URL;
}
if (document.all)//针对IE浏览器
{
document.body.style.behavior = 'url(#default#homepage)';
document.body.setHomePage(url);
}
else if (window.sidebar)//针对Firefox浏览器
{
if (window.netscape)
{
try
{
window.netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
}
catch (e)
{
alert("浏览器已拒绝此操作!请在地址栏输入“about:config”并回车,将[signed.applets.codebase_principal_support]值设为'true'后双击确认。");
}
}
var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
prefs.setCharPref('browser.startup.homepage', url);
}
}
</script>
</head>
<body>
<a onClick="SetHomepage('https://www.jb51.net/')" title="设为首页" href="javascript:">设为首页</a>
<a onClick="AddFavorite('https://www.jb51.net/','在线笔记')" title="收藏" href="javascript:">收藏</a>
</body>
</html>