79

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

搜索了一些列表,但没有一个有效。你能建议任何吗?

4

3 回答 3

55

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,IE 将显示错误(当将其查看为 时,它不允许通过 JavaScript 进行 JavaScript 书签file://...)。

于 2010-06-11T17:26:24.967 回答
11
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 不支持!

于 2011-08-06T09:25:04.707 回答
3

使用ShareThisAddThis之类的插入式解决方案怎么样?它们具有相似的功能,因此很可能它们已经解决了问题。

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

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

于 2010-06-11T19:51:02.053 回答