现在的浏览器越来越多,这就使得网页设计的兼容性要求越来越高,像常用的设为首页、加入收藏代码,一般的虽然简洁,但兼容性却非常不好,比如织梦dedecms的设为首页、加入收藏代码基本上就是个摆设,多数浏览器是没有反应,我用谷歌浏览器,360浏览器,IE8测试,只能在兼容模式下(也就是IE模式)下设为首页代码有效,但加入收藏无论是兼容模式或者是极速模式下一点反应都没有。
下面是dedecms的设为首页、加入收藏代码
<a href="#"onclick="this.style.behavior='url(#default#homepage)';this.setHomePage('http://localhost');">设为首页</a><a href="#" onClick="window.external.AddFavorite('http://localhost','本地网站')">加入收藏</a>
下面这组代码是我觉得现在写得比较好的代码,即便在浏览器不支持的情况下它也会弹出提示,不会让用户觉得只是个摆设。
下面是JS代码
<script type="text/javascript">
// 设置为主页
function SetHome(obj,vrl){
try{
obj.style.behavior='url(#default#homepage)';obj.setHomePage(vrl);
}
catch(e){
if(window.netscape) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
}
catch (e) {
alert("此操作被浏览器拒绝!\n请在浏览器地址栏输入“about:config”并回车\n然后将 [signed.applets.codebase_principal_support]的值设置为'true',双击即可。");
}
var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
prefs.setCharPref('browser.startup.homepage',vrl);
}else{
alert("您的浏览器不支持,请按照下面步骤操作:1.打开浏览器设置。2.点击设置网页。3.输入:"+vrl+"点击确定。");
}
}
}
// 加入收藏 兼容360和IE6
function shoucang(sTitle,sURL)
{
try
{
window.external.addFavorite(sURL, sTitle);
}
catch (e)
{
try
{
window.sidebar.addPanel(sTitle, sURL, "");
}
catch (e)
{
alert("加入收藏失败,请使用Ctrl+D进行添加");
}
}
}
</script>
下面是在body区调用的代码
<a href="javascript:void(0)" onclick="SetHome(this,window.location)">设为首页</a>
<a href="javascript:void(0)" onclick="shoucang(document.title,window.location)">加入收藏</a>
下面是全部代码,大家可以测试
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script type="text/javascript">
// 设置为主页
function SetHome(obj,vrl){
try{
obj.style.behavior='url(#default#homepage)';obj.setHomePage(vrl);
}
catch(e){
if(window.netscape) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
}
catch (e) {
alert("此操作被浏览器拒绝!\n请在浏览器地址栏输入“about:config”并回车\n然后将 [signed.applets.codebase_principal_support]的值设置为'true',双击即可。");
}
var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
prefs.setCharPref('browser.startup.homepage',vrl);
}else{
alert("您的浏览器不支持,请按照下面步骤操作:1.打开浏览器设置。2.点击设置网页。3.输入:"+vrl+"点击确定。");
}
}
}
// 加入收藏 兼容360和IE6
function shoucang(sTitle,sURL)
{
try
{
window.external.addFavorite(sURL, sTitle);
}
catch (e)
{
try
{
window.sidebar.addPanel(sTitle, sURL, "");
}
catch (e)
{
alert("加入收藏失败,请使用Ctrl+D进行添加");
}
}
}
</script>
</head>
<body>
<a href="javascript:void(0)" onclick="SetHome(this,window.location)">设为首页</a>
<a href="javascript:void(0)" onclick="shoucang(document.title,window.location)">加入收藏</a>
</body>
</html>