使用JavaScript添加浏览器书签

6
我有一个ASP.NET网页,在其中有一个按钮。点击该按钮,应在浏览器中保存一个书签,当用户点击该书签时,应浏览到http://google.com
如何确保它与几乎所有标准浏览器兼容,或者至少与IE、Mozilla Firefox、Opera和Google Chrome兼容。
另一种情况是,我用同样的方式创建了第二个书签。但是当用户点击第二个书签时,它应运行一段JavaScript代码。
4个回答

2

我写了一段代码,可以在IE、Firefox和Opera上运行(不幸的是,它无法在Google Chrome上运行)。

function bookmark()
{
    var title = 'Google';
    var url = 'http://google.com';

    if (document.all) // Check if the browser is Internet Explorer
        window.external.AddFavorite(url, title);

    else if (window.sidebar) //If the given browser is Mozilla Firefox
        window.sidebar.addPanel(title, url, "");

    else if (window.opera && window.print) //If the given browser is Opera
    {
        var bookmark_element = document.createElement('a');
        bookmark_element.setAttribute('href', url);
        bookmark_element.setAttribute('title', title);
        bookmark_element.setAttribute('rel', 'sidebar');
        bookmark_element.click();
    }
}

但是这将(正如我已经解释过的那样)仅为Firefox添加一个侧边栏。不幸的是,Chrome或Safari没有任何解决方案。 - 2ndkauboy

1

对于FireFox,不需要为书签设置任何JavaScript,只需使用带有titlerel="sidebar"的锚标签即可实现此功能。

<a href="http://www.google.com" title="Google" rel="sidebar">Bookmark This Page</a>

我已在FF9上进行了测试


1
据我所知,在Firefox中目前没有添加常规书签的功能。只能在Firefox中创建侧边栏书签。
在这里,您可以找到适用于大多数浏览器的脚本:http://labnol.blogspot.com/2006/01/add-to-favorites-ie-bookmark-firefox.html 正如您在这一行中看到的:
window.sidebar.addPanel(title, url,"");

它只为Firefox添加了一个侧边栏条目,这并不是很用户友好。


另一个解决方案是使用类似 http://www.addthis.com 的工具,这将为用户提供更多选项来收藏页面,因为他可能不会坐在自己的电脑前使用浏览器中的社交收藏插件。 - 2ndkauboy

1

由于安全原因无法完成。以前可以使用专有的IE命令来实现,但我认为这在IE 7中已经结束了。在其他浏览器中绝对不可能。

Mozilla开发者中心上的相关讨论


或者至少给用户提供添加书签的选项,即是否可以请求用户的许可来添加它? - Arjun Vasudevan
@Arjun,我认为这(询问用户许可)是当你在IE中调用window.external.AddFavorite时现今的情况。我不知道还有其他方法可以做到这一点,除了请求用户按Ctrl+D。 - Pekka

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接