JavaScript实现浏览器添加收藏与设为首页功能详解
本文整理了三种使用JavaScript实现浏览器添加收藏及设为首页功能的代码方案。通过判断navigator.userAgent区分不同浏览器,分别处理IE、Firefox及360等浏览器的兼容性问题,并提供手动收藏提示。
使用JavaScript实现浏览器添加收藏功能
在近期项目开发中,为了实现让用户能够将当前网页添加到浏览器收藏夹的功能,我对相关的API进行了调研。
网络上存在多种不同版本的实现代码,经过整理和测试,我汇总了以下代码,其逻辑清晰且易于理解。
<script>
function _addFavorite() {
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) {//IE类浏览器
try{
window.external.addFavorite(url, title);
}catch(e){
alert('您的浏览器不支持,请按 Ctrl+D 手动收藏!');
}
}
else if (window.sidebar) {//firfox等浏览器;
window.sidebar.addPanel(title, url, "");
}
else {
alert('您的浏览器不支持,请按 Ctrl+D 手动收藏!');
}
}
</script> <a href="javascript:void(0)" rel="external nofollow" onclick="_addFavorite()">加入收藏</a>扩展阅读:使用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('//www.jb51.net','我们');
}
else if (window.sidebar)
{
window.sidebar.addPanel('我们', '//www.jb51.net', "");
}
}
</script>
<body>
<a href="#" rel="external nofollow" onclick="addfavorite()">加入收藏!</a>测试结果表明:该段代码在IE6及以上版本以及Firefox浏览器中均能正常生效,但在Chrome浏览器中无效。
至此,关于使用JavaScript实现浏览器添加收藏功能的文章介绍完毕。如需了解更多相关js浏览器加入收藏的内容,请搜索本站历史文章或继续浏览后续相关文章,希望大家以后多多支持本站!
D3.js 处理大规模数据点的性能优化策略
2026-11-05 15:37:25
JS实现网页摄像头实时扫码:结合getUserMedia与jsQR教程
2026-11-05 15:27:28
D3.js v5 迁移到 v7 的 API 变更与注意事项
2026-11-05 11:57:17
使用 animate.js 实现多元素协同的序列动画
2026-11-04 22:27:53
JS拖拽排序时怎么添加平滑动画效果?FLIP技术实战
2026-11-04 10:12:22
