加入收藏代码的兼容问题(加入书签/兼容IE,FF)

2012-05-29  金城  2395

1、IE浏览器加入收藏夹的代码

window.external.addFavorite(sURL,sTitle);

参数:

sURL:添加到收藏夹的完整网站页面地址

sTitle:添加到收藏夹中的网站页面标题名称。

示例:

<a href='#'onClick="javascript:window.external.AddFavorite('http://xxx.net','xxx网');">加入收藏</a>2、Firefox浏览器加入收藏夹的代码

Firefox中叫做加入书签(收藏夹),代码有两种方式,一种同IE浏览器的方法类似,只不过是window.external.AddFavorite换成了sidebar.addPanel,另外一种却十分简单,只需要加一个参数就可以了。

第一种方法:

window.sidebar.addPanel(sTitle,sURL,"");

参数

sURL:收藏的网站页面完整连接

sTitle:收藏网站页面的名称

示例:

<a href='#'onClick="javascript:window.sidebar.addPanel('xxx','http://xxx.net','');">收藏本站</a>这里要注意,addPanel函数的参数顺序与addFavorite刚好是相反的。

第二种方法:

在链接上添加rel="sidebar"属性

示例: <a href="http://xxx.net"title="xxx"rel="sidebar">收藏本站</a>注意:这里的title属性就是收藏网站页面的名称。

3、兼容Firefox和IE浏览器的方法

既然Firefox提供了两种方式,那么我们兼容Firefox和IE浏览器也可以用两种方法了。

第一种方法:

这里用了一个变通的方式来解决这个问题,代码比较清晰。这个是最好的方式了!

<script type="text/javascript">
 function addfavorite(){
 if(document.all){
  window.external.addFavorite('http://xxx.net','xxx');
 }else if (window.sidebar){
  window.sidebar.addPanel('xxx','http://xxx.net',"");
 }
};
</script>

<a href="#"onClick="addfavorite()">加入收藏</a>

第二种方法:

这个是最简单的一个方法了,只有一句话。

<a href='http://mycoolapp.net'onClick="javascript:window.external.AddFavorite('http://www.mycoolapp.net','xxx网');"title="xxx"rel="sidebar">收藏本站</a>

但是这种方法有些问题,就是在IE下回同时打开链接中的地址。那么我们来优化一下!

<a href="http://www.mycoolapp.net/"onClick="window.external.addFavorite(this.href,this.title);return false;"title='xxx'rel="sidebar">加入收藏</a>

这种方法在火狐下还有个问题,就是用firebug能看到红色的报错信息。向我这样最求完美的人是不能容忍的。再优化一下!

<a href="/"onclick="if(document.all){window.external.addFavorite(this.href,this.title);return false;}"rel="sidebar">加入收藏</a>

**后来又发现了问题** 在火狐的IE插件(有的是网银插件)下,还是出错,因为插件IE功能不全或受限。

所以现在改为:

<a href="/"onclick="try{if(document.all){window.external.addFavorite(this.href,document.title);return false;}}catch(e){alert('IE功能受限模式,无法添加收藏!\r\n\r\n您是否正在使用非IE浏览器的兼容(IE)模式(或网银模式)?\r\n解决:取消IE兼容模式\r\n 或 点击浏览器的收藏按钮\r\n 或 使用真正的IE浏览器');return false;}"rel="sidebar">收藏本站</a>

*另附设为首页代码:

<a href="javascript:void(0)"title="设为首页"onClick="this.style.behavior='url(#default#homepage)';this.setHomePage('http://www.mycoolapp.net/')">设为首页</a>