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组件指向了错误的文件。问题的描述和解决可以参见这篇帖子