转帖:IE6, IE7, IE8, Firefox 兼容的“加入收藏夹”脚本

 

function addFavorite() {
    var aUrls = document.URL.split("/");
    var vDomainName = "http://" + aUrls[2] + "/";
    var description = document.title;
    try {//IE
        window.external.AddFavorite(vDomainName, description);
    } catch(e) {//FF
        window.sidebar.addPanel(description, vDomainName, "");
    }
}

 

同时兼容IE (版本至最新的IE8) 和 Firefox 的“加入收藏夹”的 Javascript 脚本如下:

function addBookmark(url, title) {
if( document.all ) {
  try
  {
   window.external.addFavorite(url, title);
  }
  catch (e1)
  {
   try
   {
    window.external.addToFavoritesBar(url, title);
   }
   catch (e2)
   {
    alert('加入收藏失败,请您手工加入。')
   }
  }
} else if (window.external) {
  window.sidebar.addPanel(title, url,"");
} else {
  alert('加入收藏失败,请您手工加入。')
}
}
document.all 用来判断是否为IE,window.external.addFavorite是IE7以及以下版本的加入收藏夹接口,window.external.addToFavoritesBar则是IE8的接口。window.external 用于判断是否为Firefox,window.sidebar.addPanel是Firefox加入收藏夹的接口。

在某些IE7中,以上脚本可能会失效,错误原因为window.external.addFavorite元素不存在。这种情况不是由于脚本本身的不健全造成的,而是浏览器自身的Bug。通常这个问题会出现在安装过IE8,又降级到IE7的电脑上(偶的电脑没装过IE8也有这个问题)。导致该错误的原因貌似是注册表中的一个dll组件指向了错误的文件。问题的描述和解决可以参见这篇帖子

你可能感兴趣的:(转帖:IE6, IE7, IE8, Firefox 兼容的“加入收藏夹”脚本)