js Firefox 加入收藏夹功能代码 兼容Firefox 和 IE
完整代码如下:chrome下也有提示,说实话一般这类代码一般都是IE下使用,其它浏览器也只是给个提示了。
<script type="text/javascript"> //设为首页 www.jb51.net function SetHome(obj,url){ try{ obj.style.behavior='url(#default#homepage)'; obj.setHomePage(url); }catch(e){ if(window.netscape){ try{ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); }catch(e){ alert("抱歉,此操作被浏览器拒绝!\n\n请在浏览器地址栏输入“about:config”并回车然后将[signed.applets.codebase_principal_support]设置为'true'"); } }else{ alert("抱歉,您所使用的浏览器无法完成此操作。\n\n您需要手动将【"+url+"】设置为首页。"); } } } //收藏本站 www.jb51.net function AddFavorite(title, url) { try { window.external.addFavorite(url, title); } catch (e) { try { window.sidebar.addPanel(title, url, ""); } catch (e) { alert("抱歉,您所使用的浏览器无法完成此操作。\n\n加入收藏失败,请进入新网站后使用Ctrl+D进行添加"); } } } </script> <a href="javascript:void(0);" onclick="SetHome(this,'http://www.jb51.net');">设为首页</a> <div class="text text2"><a href="javascript:void(0);" onclick="AddFavorite('我们','http://www.jb51.net')">收 藏 本 站</a>
下面是一些具体的讲解:
1、IE浏览器加入收藏夹的代码
window.external.addFavorite(sURL, sTitle);
参数:
sURL:添加到收藏夹的完整网站页面地址
sTitle:添加到收藏夹中的网站页面标题名称。
示例:
<a href='#' onClick="javascript:window.external.AddFavorite('http://www.domain.com', '名字');">加入收藏</a>
2、Firefox浏览器加入收藏夹的代码
Firefox中叫做加入书签(收藏夹),代码有两种方式,一种同IE浏览器的方法类似,只不过是window.external.AddFavorite换成了sidebar.addPanel,另外一种却十分简单,只需要加一个参数就可以了。
第一种方法:
window.sidebar.addPanel(sTitle, sURL, "");
参数
sURL:收藏的网站页面完整连接
sTitle:收藏网站页面的名称
示例:
<a href='#' onClick="javascript:window.sidebar.addPanel('名字','http://www.domain.com','');">收藏本站</a>
这里要注意,addPanel函数的参数顺序与addFavorite刚好是相反的。
第二种方法:
在链接上添加rel="sidebar"属性
示例:
<a href=http://www.domain.com title="名字" rel="sidebar">收藏本站</a>
注意:这里的title属性就是收藏网站页面的名称。
3、兼容Firefox和IE浏览器的方法
既然Firefox提供了两种方式,那么我们兼容Firefox和IE浏览器也可以用两种方法了。
第一种方法:
这里用了一个变通的方式来解决这个问题,代码比较清晰。这个是最好的方式了!
function addfavorite()
{
if (document.all)
{
window.external.addFavorite('http://www.domain.com','名字');
}
else if (window.sidebar)
{
window.sidebar.addPanel('名字', 'www.domain.com', "");
}
}
加入收藏
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
需要注意的是ie是域名在前面,firefox是域名在后门,最后留一个空字符。
第二种方法:
这个是最简单的一个方法了,只有一句话。
<a href='http://www.domain.com' onClick="javascript:window.external.AddFavorite('http://www.domain.com',' 名字');" title="名字" rel="sidebar">收藏本站</a>
但是这种方法有些问题,就是在IE下回同时打开链接中的地址。那么我们来优化一下!
<a href="www.domain.com/" onclick="window.external.addFavorite(this.href,this.title);return false;" title='名字' rel="sidebar">加入收藏</a>
这样就没问题啦,哈哈!同时兼容IE6、IE7、Firefox、Opera等浏览器。
更多的兼容性更好的代码,可以搜索我们以前的文章。
我们最下面的 加入收藏 设为首页功能。
function addBookmark(title,url) {
if (window.sidebar) {
window.sidebar.addPanel(title,url,"");
} else if( document.all ) {
window.external.AddFavorite(url,title);
} else if( window.opera && window.print ) {
return true;
}
}
function setHome(url)
{
if (document.all){
document.body.style.behavior='url(#default#homepage)';
document.body.setHomePage(url);
}else if (window.sidebar){
if(window.netscape){
try{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
}catch (e){
alert( "该操作被浏览器拒绝,如果想启用该功能,请在地址栏内输入 about:config,然后将项 signed.applets.codebase_principal_support 值该为true" );
}
}
if(window.confirm("你确定要设置"+url+"为首页吗?")==1){
var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
prefs.setCharPref('browser.startup.homepage',url);
}
}
}
设为首页 - 加入收藏
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]