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

Posted

技术标签:

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

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

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

【问题讨论】:

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

【讨论】:

我不会认为这是“工作” - 详情请参阅***.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】:

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

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

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

【讨论】:

以上是关于跨浏览器书签/添加到收藏夹 JavaScript [重复]的主要内容,如果未能解决你的问题,请参考以下文章

从 JavaScript 添加到浏览器收藏夹/书签,但适用于所有浏览器(我的在 Chrome 中不起作用)?

JavaScript 在Javascript中创建添加到收藏夹/书签按钮

在Javascript中创建“添加到收藏夹/书签”按钮

javascript书签复制网页标题和链接

iPhone 收藏网址[添加到书签] 和 [添加到主屏幕] 显示自定义图标,而不是网页截图

浏览器收藏夹(书签)导入导出