【问题标题】:Cross-browser bookmark/add to favorites JavaScript [duplicate]跨浏览器书签/添加到收藏夹 JavaScript [重复]
【发布时间】:2011-03-02 18:30:07
【问题描述】:

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

搜索了一些列表,但没有一个有效。可以推荐一下吗?

【问题讨论】:

  • 我认为没有。书签/收藏夹应该在用户的控制之下,想象一下如果您访问的任何网站都可以通过一些 javascript 将自己插入到您的书签中。
  • 我不是要求自动添加书签。单击按钮时应为当前页面添加书签。我看到了很多脚本,但没有一个是跨浏览器支持
  • 好的,所以您需要一些提示用户是否要将您的网站添加到书签的内容。这有点不同......
  • 老实说:如果用户需要一个按钮来为网站添加书签,那么他/她可能不知道书签是如何工作的。经常使用书签的用户都知道,你可以按CTRL+D,拖动书签栏上的小站点图标,使用菜单等等。我发现放一个“给我们添加书签!”可以这么说,按钮似乎有点复古。只需制作一个好的网站,其内容会促使用户为其添加书签,而您不需要任何按钮。 (在这种情况下只需要我的 2 美分,那么您必须决定在您的网站上放置哪些按钮!)
  • 我没有在我的网站上放一个按钮!我正在创建一个 wordpress 插件。安装它的用户会获得一个按钮来为当前页面添加书签,例如“社交”插件

标签: javascript cross-browser bookmarks


【解决方案1】:

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 书签)。

【讨论】:

  • 我不会认为这是“工作” - 详情请参阅stackoverflow.com/questions/992844/…
  • 实际上,由于 UI 的变化,自从我的回答以来,FF 的情况有所改善,即用户现在可以在添加书签时删除在侧边栏中打开链接的选项
  • 抱歉不适合我。我在 IE 中收到“页面错误”
  • 这不是也需要外部js库吗?
  • 这个答案似乎已经过时,欢迎任何更新。
【解决方案2】:
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 不支持!

【讨论】:

    【解决方案3】:

    使用像ShareThisAddThis 这样的直接解决方案怎么样?它们具有相似的功能,因此很可能它们已经解决了问题。

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

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

    【讨论】:

      猜你喜欢
      • 2013-08-29
      • 2010-11-02
      • 2011-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-20
      相关资源
      最近更新 更多