【问题标题】:Internet Explorer 8: Navigate to users home pageInternet Explorer 8:导航到用户主页
【发布时间】:2009-09-23 16:20:38
【问题描述】:

几年来,我一直在使用以下脚本在单击按钮时导航到用户主页。但是,随着 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+ 导航到用户主页的新方法?脚本必须是跨浏览器的。

【问题讨论】:

  • 有趣的问题......虽然我从来没有完全理解为什么要添加这个......因为用户可以随时单击主页或按 ALT+Home。

标签: javascript internet-explorer internet-explorer-8


【解决方案1】:

在地址栏中输入about:home时要导航到的URI存储在注册表中

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\AboutURLs

但是,IE8 似乎禁用了此功能。条目 Home 是一个 REG_DWORD,而不是包含主页 URL 的字符串值。这可能与可以在标签中打开多个主页的特性有关。

虽然我找不到任何关于Home REG_DWORD 值含义的文档,但可以将其更改为字符串值。然后about:home 将导航到该值中指定的 URL。但是,这很可能不是您的解决方案,因为这需要注册表的管理员权限。

【讨论】:

    【解决方案2】:

    我想通了,虽然分辨率对我来说似乎很奇怪:

    1. 创建一个新的 CSS 元素: .hpClass { 行为:url(#default#homepage) }

    2. 创建一个引用新 CSS 的跨度并创建一个类名: <span id="hp" class="hpClass"></span>

    3. 检查 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(); } }

    【讨论】:

      【解决方案3】:

      看来我们必须使用 Internet Explorer 的 DHTML Behaviors...我还没有找到任何纯 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>
      

      【讨论】:

        猜你喜欢
        • 2013-08-09
        • 2012-06-22
        • 1970-01-01
        • 2013-06-21
        • 2013-08-28
        • 2010-09-13
        • 2023-04-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多