本文提供一段兼容IE、Chrome和Firefox的JavaScript代码,实现设为首页、收藏本站及保存到桌面功能。代码通过检测浏览器类型调用不同接口,如IE的ActiveXObject或DOM行为,Firefox的sidebar.addPanel,并处理权限异常。附带HTML调用示例,适用于传统Web开发场景,需注意现代浏览器对自动设置首页和收藏的限制。
多浏览器兼容的首页与收藏功能实现
本文分享一段用于实现设为首页、收藏本站以及保存到桌面功能的JavaScript代码,具有较高的实用价值。
具体代码实现如下:
<script type="text/javascript">
// 设为首页功能
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 + "】设置为首页。");
}
}
}
// 收藏本站功能
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进行添加");
}
}
}
// 保存到桌面功能
function toDesktop(sUrl, sName) {
try {
var WshShell = new ActiveXObject("WScript.Shell");
var oUrlLink = WshShell.CreateShortcut(WshShell.SpecialFolders("Desktop") + "\\" + sName + ".url");
oUrlLink.TargetPath = sUrl;
oUrlLink.Save();
}
} catch (e) {
alert("当前IE安全级别不允许操作!");
}
}
</script>
HTML页面调用示例
页面调用方式如下:
HTML调用代码示例:
<a href="javascript:void(0);" onclick="SetHome(this,'http://www.xyz.com');">设为首页</a>
<a href="javascript:void(0);" onclick="AddFavorite('我的网站',location.href)">收藏本站</a>
<a href="javascript:void(0);" onclick=" toDesktop(location.href,'我的网站')">保存到桌面</a>
该代码源自实际项目应用,可直接使用。