跨浏览器书签/添加到收藏夹 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中创建添加到收藏夹/书签按钮