js实现浏览器收藏功能

js如何实现浏览器收藏功能,就是模拟ctrl+D来实现网页对收藏,external.addFavorite兼容不行,求教?

阅读 13.5k
4 个回答

浏览器没有开放这个权限了,external.addFavorite这个给禁了,看了很多网站都没有这个功能了,不过可以提醒用户自行操作加入收藏,可以使用楼上回答的这个

        //设为首页
        function SetHome(obj, url) {
            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 + "】设置为首页。");
                }
            }
        }

        //收藏本站
        function AddFavorite(title, url) {
            try {
                window.external.addFavorite(url, title);
            } catch(e) {
                try {
                    window.sidebar.addPanel(title, url, "");
                } catch(e) {
                    alert("抱歉,您所使用的浏览器无法完成此操作。\n\n加入收藏失败,请使用Ctrl+D进行添加");
                }
            }
        }
    <a href="javascript:void(0);" onclick="SetHome(this,document.domain);">设为首页</a>
    <a href="javascript:void(0);" onclick="AddFavorite('我的网站',location.href)">收藏本站</a>

做判断,再结合 sidebar.addPanel 一起使用。比如:

if (window.sidebar) {
  window.sidebar.addPanel(location.href, document.title, "");
} else if (window.external) {
  window.external.AddFavorite(location.href, document.title);
}

// 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进行添加");
    }
}

}

除了老版本的ie, 就已经没有浏览器能支持js添加收藏夹和设置首页

没看见现在的网站都不做这两个功能了吗

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题