跨浏览器书签/添加到收藏夹JavaScript [复制]

问题描述 投票:67回答:4

这个问题在这里已有答案:

是否有任何跨浏览器书签/使用JavaScript添加到收藏夹。

搜索了一些列表但没有一个正在运行。你能建议吗?

javascript cross-browser bookmarks
4个回答
51
投票

jQuery版本

JavaScript(从我在某人的网站上找到的脚本修改 - 我再也找不到该网站,所以我无法给予该人信用):

$(document).ready(function() {
  $("#bookmarkme").click(function() {
    if (window.sidebar) { // Mozilla Firefox Bookmark
      window.sidebar.addPanel(location.href,document.title,"");
    } else if(window.external) { // IE Favorite
      window.external.AddFavorite(location.href,document.title); }
    else if(window.opera && window.print) { // Opera Hotlist
      this.title=document.title;
      return true;
    }
  });
});

HTML:

<a id="bookmarkme" href="#" rel="sidebar" title="bookmark this page">Bookmark This Page</a>

如果你不在服务器上运行它,IE将显示错误(当它作为file://...查看时,它不允许通过JavaScript使用JavaScript书签。

如果你需要一个更完整的脚本,你可以随时buy one from this page(不,我不隶属于那个网站......大声笑)。


9
投票
function bookmark(title, url)
{
 if (window.sidebar)
 {// Firefox
  window.sidebar.addPanel(title, url, '');
 }
 else if (window.opera && window.print)
 {// Opera
  var elem = document.createElement('a');
  elem.setAttribute('href',url);
  elem.setAttribute('title',title);
  elem.setAttribute('rel','sidebar');
  elem.click();//this.title=document.title;
 }
 else if (document.all)
 {// ie
  window.external.AddFavorite(url, title);
 }
}

我用过它,在IE,FF,Netscape中运行得很好。 Chrome,Opera和Safari不支持它!


7
投票

我在想不。书签/收藏夹应该在用户的控制之下,想象一下,如果您访问过的任何网站只需要一些javascript就可以将自己插入到书签中。


3
投票

如何使用像ShareThisAddThis这样的插入式解决方案?它们具有类似的功能,因此它们很可能已经解决了这个问题。

AddThis的代码有一个巨大的if / else浏览器版本分叉用于保存收藏夹,但大多数分支以提示用户自己手动添加收藏夹结束,所以我认为没有这样的纯JavaScript实现存在。

否则,如果你只需要支持IE和Firefox,你就有IE的window.externalAddFavorite( )和Mozilla的window.sidebar.addPanel( ).

© www.soinside.com 2019 - 2024. All rights reserved.