我已经使用以下脚本几年了,当点击一个按钮时导航到用户主页。但是,随着IE8的启动,这不起作用,因为它显示“about:home”不再有效。
if(window.home) {
// for everything but IE:
window.home();
} else {
// for IE:
window.location = "about:home"; // IE8 will error here if the location is "about:home"
}
是否有一种新方法可以让Internet Explorer 8+导航到用户主页?该脚本必须是跨浏览器。
答案 0 :(得分:0)
在位置栏中输入about:home
时导航到的URI存储在注册表中
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\AboutURLs
但是,IE8似乎禁用了此功能。条目Home
是REG_DWORD,而不是包含主页URL的字符串值。这可能与可以在选项卡中打开多个主页的功能有关。
虽然我无法找到有关Home
REG_DWORD值含义的任何文档,但可以将其更改为字符串值。然后about:home
将导航到该值中指定的网址。但是,这很可能不适合您,因为这需要注册表的管理员权限。
答案 1 :(得分:0)
我想通了,虽然这个决议对我来说很奇怪:
创建一个新的CSS元素: .hpClass {behavior:url(#default #homepage)}
创建引用新CSS&创建一个类名:
<span id="hp" class="hpClass"></span>
全部检查IE版本并使用新对象或旧的“about:home”样式:
if(window.home) {
window.home();
} else {
ieVer = parseFloat(navigator.appVersion.split("MSIE")[1]);
if(ieVer <= 7) {
window.location = "about:home";
} else {
hp.navigateHomePage();
}
}
答案 2 :(得分:0)
似乎我们必须使用Internet Explorer的DHTML行为......我还没有找到任何纯JavaScript解决方案。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns:ie>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Home Link - Test</title>
<style>
@media all {
IE\:HOMEPAGE {behavior:url(#default#homepage)}
}
</style>
<script type="text/javascript">
function goHome() { // Firefox
if (window.home) {
window.home();
}
else { // IE
if (navigator.appVersion.split("MSIE")[1] <= 7) { // IE 4-7
window.location = "about:home";
}
else { // IE 8
oHomePage.navigateHomePage();
event.returnValue = false;
}
}
}
</script>
</head>
<body>
<ie:homepage id="oHomePage" />
<a href="#" onclick="goHome();">Home</a>
<!-- <input type="button" value="Navigate" onclick="fnGo()"/> -->
</body>
</html>