打印

BX2033: 各浏览器对使用脚本将页面加入收藏夹的支持情况不同

作者:周涛

标准参考

问题描述

目前,IE Firefox Opera 提供了各自将当前页 URL 加入到浏览器的收藏夹中的接口,Chrome Safari 暂未提供相应接口。

造成的影响

不同的浏览器对“加入收藏夹”的支持情况不同,Chrome Safari 不能通过脚本代码将当前页 URL 加入到浏览器的收藏夹中。

受影响的浏览器

所有浏览器  

问题分析

加入收藏夹功能是由各浏览器厂商提供,非 W3C 规范范畴,他们的实现差异如下:

IE 浏览器,使用 window.external.AddFavorite 方法添加到收藏夹。
详见:http://msdn.microsoft.com/en-us/library/ms535926%28VS.85%29.aspx

Firefox 浏览器,使用 window.sidebar.addPanel 方法。
详见:https://developer.mozilla.org/en/DOM/window.sidebar

Opera 浏览器,可以给链接添加 title 和 rel 属性实现收藏功能(该方式也适合Firefox);其中 title 属性就是网站的名称,rel 设置为 slidebar。如下:

<a href="http://www.google.com" title="Google" rel="sidebar">收藏本站</a>

Safari Chrome 浏览器目前未提供将页面添加到收藏夹接口。

解决方案

综合各浏览器提供的加入收藏夹的方法编写代码,并为没有提供相应接口的浏览器给出友好提示。如:

<script type="text/javascript">
function addFavorite(url,title){
  if(window.sidebar||window.opera)return true;
  try{
    window.external.AddFavorite(url,title);
  }
  catch(e){
    alert("请按下 Ctrl + D 键将本站加入收藏。");
  }
  return false;
}
</script>
<a href="http://www.google.com" title="google" rel="sidebar" onclick="return addFavorite('http://www.google.com','Google');">加入收藏</a>

参见

知识库

相关问题

测试环境

操作系统版本: Windows 7 Ultimate build 7600
浏览器版本: IE6
IE7
IE8
Firefox 3.6.8
Chrome 6.0.472.22 dev
Safari 5.0.1
Opera 10.60
测试页面:  
本文更新时间: 2010-08-06

关键字

Favorite AddFavorite sidebar 加入收藏夹