JavaScript实现网站加入收藏与设为首页功能详解
本文分享三种JavaScript实现网站加入收藏及设为首页功能的代码方案。涵盖兼容所有浏览器的通用实现、IE与Firefox的特定处理,以及简化版代码。详细解析navigator.userAgent判断逻辑,提供完整JS代码与HTML调用示例,并测试IE6+、Firefox及Chrome的兼容性结果。
JavaScript实现网站加入收藏与设为首页功能详解
本文整理了三种使用JavaScript实现网站加入收藏夹功能的代码示例,具体内容如下所示。
兼容所有浏览器的通用方案
第一种方案旨在兼容所有主流浏览器。其核心原理是通过获取并转换用户代理字符串navigator.userAgent.toLowerCase()来识别浏览器类型,随后根据各浏览器是否支持原生的JavaScript收藏命令进行判断。若浏览器支持,则执行自动收藏;若不支持,则提示用户按Ctrl+D进行手动收藏。具体代码如下:
function addFavorite2() {
var url = window.location;
var title = document.title;
var ua = navigator.userAgent.toLowerCase();
if (ua.indexOf("360se") > -1) {
alert("由于360浏览器功能限制,请按 Ctrl+D 手动收藏!");
}
else if (ua.indexOf("msie 8") > -1) {
window.external.AddToFavoritesBar(url, title); //IE8
}
else if (document.all) {
try{
window.external.addFavorite(url, title);
}catch(e){
alert('您的浏览器不支持,请按 Ctrl+D 手动收藏!');
}
}
else if (window.sidebar) {
window.sidebar.addPanel(title, url, "");
}
else {
alert('您的浏览器不支持,请按 Ctrl+D 手动收藏!');
}
}
将上述代码保存为独立的JS文件,并在需要添加收藏功能的页面位置引入该脚本。调用方式如下:
示例代码如下:
<a href=# onclick="javascript:addFavorite2()">加入收藏</a>
同时实现设为首页与加入收藏
第二种方案实现了同时具备“设为首页”和“加入收藏”功能的JavaScript代码。
// JavaScript Document
// 加入收藏 <a onclick="AddFavorite(window.location,document.title)">加入收藏</a>
function AddFavorite(sURL, sTitle)
{
try
{
window.external.addFavorite(sURL, sTitle);
}
catch (e)
{
try
{
window.sidebar.addPanel(sTitle, sURL, "");
}
catch (e)
{
alert("加入收藏失败,请使用Ctrl+D进行添加");
}
}
}
//设为首页 <a onclick="SetHome(this,window.location)">设为首页</a>
function SetHome(obj,vrl){
try{
obj.style.behavior='url(#default#homepage)';obj.setHomePage(vrl);
}
catch(e){
if(window.netscape) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
}
catch (e) {
alert("此操作被浏览器拒绝!\n请在浏览器地址栏输入“about:config”并回车\n然后将 [signed.applets.codebase_principal_support]的值设置为'true',双击即可。");
}
var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
prefs.setCharPref('browser.startup.homepage',vrl);
}
}
}
具体使用方法如下:
<a href="#" onclick="SetHome(this,window.location)" >设为首页</a>
<a href="#" onclick="AddFavorite(window.location,document.title)" >收藏本站</a>
简洁版添加收藏代码及兼容性测试
第三种方案提供了更简洁的JavaScript添加收藏代码。
许多网站为了提升用户粘性和维持流量,通常会提供“设为首页”和“添加收藏”等快捷按钮。以下是实现该功能的JavaScript代码示例:
<script>
function addfavorite()
{
if (document.all)
{
window.external.addFavorite('https://www.jb51.net','本站');
}
else if (window.sidebar)
{
window.sidebar.addPanel('本站', 'https://www.jb51.net', "");
}
}
</script>
<body>
<a href="#" onclick="addfavorite()">加入收藏!</a>
经测试,该段代码在IE6及以上版本以及Firefox浏览器中均能正常工作,但在Chrome浏览器中无效。
以上即为利用JavaScript代码实现设为首页与加入收藏功能的完整介绍,希望对大家有所帮助。
JS在setTimeout或Ajax回调中打开新标签页失败怎么处理
2026-11-05 15:50:12
JS直播协议选型:HLS、FLV与WebRTC的延迟与兼容性对比
2026-11-05 12:16:14
JS实现回到顶部:scrollTop赋值与浏览器兼容性处理
2026-11-04 23:43:35
JS使用classList动态添加、移除和切换CSS类名
2026-11-04 23:40:58
在 D3.js 中实现平滑过渡动画的技巧
2026-11-03 23:46:09
