【问题标题】:Prevent viewing page using Internet Explorer阻止使用 Internet Explorer 查看页面
【发布时间】:2012-02-19 03:18:53
【问题描述】:

我开发的网站在 Chrome、Safari、Firefox 和 Opera 等现代浏览器中看起来很棒,但在旧版本的 Internet Explorer 中看起来很糟糕。

如果检测到旧版本的 IE,我是否可以使用一些代码来阻止页面加载?
也许代码可以加载不同的页面?

关于如何最好地实现这一点的任何想法?谢谢。

【问题讨论】:

标签: internet-explorer browser cross-browser


【解决方案1】:

是的,您可以使用客户端重定向或服务器端重定向。 要么 您可以根据浏览器显示不同的内容。

Javascript/jQuery:

if ($.browser.msie && parseInt($.browser.version, 10) < 9) {
    // Do IE specific Tasks
    // window.location = "http://somewhat.com"
}else{
   //Do other tasks
}

PHP:

<?php
$browser = get_browser(null, true);
print_r($browser);
?>

【讨论】:

  • 我不建议将用户从您的网站上移开。如果您需要制作一个特殊的启动页面或某种说明您不支持 IE 的原因,请执行此操作。但请尽量保持用户的参与度,并允许他们选择升级或切换浏览器并提供说明,以便他们尽快返回您的网站以获得最佳体验。
  • @Tim 是的,你真好。除非您对“somewhat.com”开玩笑,这显然是一个变量而不是字符串……它的意思是:“您的域是什么”。而且我想我也可以一直把它放在我的答案的顶部......
  • 我发布了您在我的答案中发布的关于不重定向用户的评论,因为您首先说重定向不好,然后将重定向放入您的答案中。
  • @Tim Ah,所以你只是误解了我的回答。我明白了。
【解决方案2】:

在您的 HTML 中使用 Internet Explorer 条件 cmets

<!--[if lt IE 9]>
Insert your IE code, like possible redirection or alteration of your page
<![endif]-->

【讨论】:

  • 这不是发布代码的好方法。这现在被认为是一个糟糕的 polyfill,应该不惜一切代价避免。
  • 根据他的页面实际出了什么问题,可能只需要一些针对 IE 的不同样式,就像通常的情况一样。 IE 条件语句可能不是最好的方法,但它是最简单且可靠的方法。
  • 实际上,可靠的方法是在加载时进行浏览器检查,并将样式作为一个类应用于 body 标签。然后在你的样式表中用这个类的序言级联 IE 中任何东西的需要。
  • @Relic 为什么这不是一个好的解决方法?如果 JS 被禁用,则 JS 重定向或条件逻辑或用户代理检测将不起作用。这个有条件的 HTML 注释在没有您可以用来定义行为的唯一语言的情况下工作......除此之外,OP 明确指定他想要阻止页面显示,并且每个人仍然继续设置样式。他已经过了那个阶段。
  • 我的意思是总体上不应该这样做。这很 hacky ......现在你正在加载额外的东西供浏览器解释,增加了重量。如果您认为这是您的解决方案,那么您就一起做错了。
【解决方案3】:

您可以使用$_SERVER 中的USER_AGENT 字符串来查找包含Internet Explorer 独有字符串的用户代理。然后,您可以发出header("Location: google.com") 或重定向到警告IE 危险的不同页面。

【讨论】:

  • 我不建议将用户从您的网站上移开。如果您需要制作一个特殊的启动页面或某种说明您不支持 IE 的原因,请执行此操作。但请尽量保持用户的参与度,并允许他们选择升级或切换浏览器并提供说明,以便他们尽快返回您的网站以获得最佳体验。
【解决方案4】:

您可能需要考虑将 Chrome Frame 添加到您的网页。 http://code.google.com/chrome/chromeframe/

【讨论】:

  • Chrome Frame 自 2014 年 2 月起停用。
【解决方案5】:

【讨论】:

    【解决方案6】:

    您在您的网站中使用 jQuery 吗?

    如果是这样,您可以利用 browser-validator-js (https://github.com/bml3i/browser-validator-js) 向使用任何版本 IE 的用户显示友好消息。只需在 HTML HEAD 中包含 browser-validator-js 和 jQuery,并将以下代码添加到 HTML BODY。

    <script type="text/javascript">
        $(document).ready(function () {
            BrowserValidator.validateBrowser();
        }); 
    </script>
    

    这是一个例子:http://blog.bigcay.com/demo/browser_validator_demo.html

    【讨论】:

      【解决方案7】:

      对我来说,它适用于

      <script>
        if (window.navigator.userAgent.indexOf("Trident/") > 0) {
          alert("Internet Explorer is not supported.")
          window.location.replace("https://example.com/ie")
        }
      </script>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多