跨浏览器书签/添加到收藏夹 JavaScript

IT技术 javascript cross-browser bookmarks
2021-02-04 06:11:37

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

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

3个回答

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

抱歉不适合我。我在 IE 中收到“页面错误”
2021-03-15 06:11:37
这也不需要外部js库吗?
2021-03-17 06:11:37
这个答案似乎已过时,欢迎任何更新。
2021-03-21 06:11:37
我不会考虑这种“工作” -详情请参见stackoverflow.com/questions/992844/...
2021-03-28 06:11:37
实际上,自从我的回答以来,由于 UI 更改,FF 情况有所改善,即用户现在可以在添加书签时删除在侧边栏中打开链接的选项
2021-04-09 06:11:37
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 不支持!

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

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

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