【问题标题】:Graceful way to tell users of IE7 and below to go away?优雅的方式告诉 IE7 及以下用户离开?
【发布时间】:2011-03-25 13:33:18
【问题描述】:

TLDR:告诉 IE6/7 用户以一种不错的方式离开 :),同时阻止他们访问所有内容。

基本上我不需要在我的网络应用程序上使用 IE7/6 的人需要。是否正在考虑在加载后仅执行 doc.write 以使用“抱歉,您的浏览器已过时”的消息擦除页面,有没有人做过类似的事情,并找到了一种很好的友好方式来告诉他们用更好的浏览器回来?

我目前正在使用 jquery,所以 jquery 解决方案可行。

(1)最可靠的浏览器检测方法?

(2) 对向用户展示什么有意见?


场景不是这里的问题

如果需要,他们将有权升级!

我这样做是有正当理由的,所以请保持对问题的关注,不要对 IE6 的一般主题以及您对它的喜爱程度发表意见。

【问题讨论】:

  • 当我使用 Opera 浏览器被拒之门外时,我总是很生气。只需显示内容,我应该可以使用任何浏览器访问它,而无需伪装自己或禁用 javascript。
  • 你为什么关心人们使用什么浏览器,只要它可以工作?很多人无法控制他们使用的浏览器,那么为什么不直接显示网站呢?似乎您正在竭尽全力证明不需要证明的观点。
  • 它是软件的一部分。它不在线。这些浏览器不应该访问它,因为有一些小问题不是开发团队需要解决的。
  • Firefox / Chrome / Safari / Opera 仍然可以工作,只是不想要 IE7 和 6
  • 您应该做的是警告用户在使用 IE6/7 的 Web 应用程序时可能出现的错误,并告诉他们使用其他东西,否则可能会崩溃。

标签: javascript jquery internet-explorer-6 internet-explorer-7


【解决方案1】:

如果可能,请将对上帝的敬畏放在您的用户身上。这实际上可能会让他们完成升级:

if ($.browser.msie && parseInt($.browser.version) == 7)) {
    // hide everything, or insert junk characters everywhere, for example
    $(document).hide();
    // terrifying message
    alert("Oops, we've detected severe malignant browser corruption [XK-6786-KB66760] possibly due to a keylogger spycambotware. Kindly upgrade your IE installation. See microsoft.com for details");
}

【讨论】:

  • keylogger spycambotware? +1 !
  • IMO:如果我访问显示此类消息的网站(可能是第一次),我会立即认为这是一个恶意网站,例如显示类似“警告您需要”的消息的连续剧/破解网站点击这里升级您的浏览器!!!”或类似的东西。
  • 除了 alert ,还有什么自定义 alert 的选项吗?
【解决方案2】:

使用 IE 条件语句(例如<![if lte IE 7]>Upgrade your browser<![endif]>)并使用 jQuery 删除内容。

【讨论】:

  • 我同意 SQLMenace 和 Matthew Flaschen 的说法,但如果你想 警告 IE 不要检查浏览器版本/用户代理字符串,因为许多浏览器都可以配置为撒谎。
  • 我也赞同 IE 条件方法:基本上,将 IE 的非标准扩展转为针对自身。这就是与我合作的 Web 开发人员处理无法在 IE6 上运行的网站的方式(而且客户不愿意支付足够的费用使其正常运行)
  • 另外,如果您的应用需要 javascript 才能运行,请将正文设为 display:none 并通过 jQuery 将其删除。
  • 使用 IE 条件,您可以发出警告消息,然后通过window.location 将用户转发到 IE 8 下载站点。
【解决方案3】:

这就是你的想法的问题,在很多公司中,用户没有管理员权限,他们不能只安装 FireFox 或 Chrome 或 Opera 或升级到 IE8。不,无论企业标准是什么,他们都坚持。我必须与为金融机构工作的人打交道……那些人安装了自定义版本的 IE,其中一半的东西被剥离,在某些情况下甚至禁用 JavaScript

这也是IE6不会很快死掉的原因

【讨论】:

  • 好点,但根本没有回答这个问题。如果他想拒绝一堆用户……对他来说很酷。
  • 您将拥有给定的管理员权限。场景不是问题。
  • 嘿,如果您不能使用该应用程序,您将无法使用该应用程序。我没有 iPhone,但你看不到我试图破解我的诺基亚使其像 iPhone 一样工作。让他做他认为正确的事
  • 相信我,如果这只是一个正常使用的普通网站,我会理解这一点,我会竭尽全力确保大多数人都能很好地看到它,但这个答案与问题无关。
  • -1 你必须和谁打交道完全无关紧要。 Thqr 明确了想和谁打交道,以及如何处理。
【解决方案4】:

您可能应该阻止浏览器缺少您需要的功能的用户,而不是嗅探浏览器。这将帮助您确保无论他们使用什么浏览器,如果某个功能不受支持,他们都会收到消息。 jQuery 可以为您做到这一点。

通常您可以测试不透明度支持,如果不存在,他们很可能使用 IE。这是我在我的一个网站上使用的解决方案。我正在使用 jQuery UI 弹出模式消息。看起来很不错。

// Provide warning for bad browsers.
if (!$.support.opacity) {
    $(['<div id="no-opacity-warning">', iesucks,'</div>'].join(''))
    .appendTo('body')
    .dialog({
        autoOpen : true,
        buttons : {
            "Get Firefox" : function() {
                window.location = 'http://www.mozilla.com/firefox/ie.html';
            },
            "Get Chrome" : function() {
                window.location = 'http://www.google.com/chrome';
            },
            "Get Chrome Frame" : function() {
                window.location = 'http://code.google.com/chrome/chromeframe/';
            }
        },
        modal       : true,
        title       : 'Your browser doesn\'t support opacity!',
        width       : 600
    });
}

iesucks 变量包含以下消息:

虽然我非常小心地开发了跨浏览器兼容的 javascript,但您浏览器中的限制会导致某些事情无法正常运行。您可能正在使用 IE。

不要害怕!有两个简单的选项可供您使用。您可以下载Firefox、Google 的Chrome 或其他符合标准的浏览器, 或者您可以安装来自 Google 的名为 Google Chrome Frame 的快速且轻松的插件。

Chrome Frame 是一个开源插件,它将 Google Chrome 的开放网络技术和快速的 JavaScript 引擎无缝地引入 Internet Explorer。它仅在查看为其设计的页面时才会激活(例如这个)。您不会有任何损失,而且速度快且免费。

【讨论】:

  • 没问题!顺便说一句:我使用 Chrome Frame for IE 取得了惊人的成功。他们的浏览器版本无关紧要,因为 chrome 框架会像使用 Google Chrome 一样呈现页面。它很甜,而且效果很好。另外,它只是一个附加组件,对于某些用户来说,这比升级或切换到其他浏览器更容易。
【解决方案5】:

感谢您在使用方面取得成功,并使 WWW 成为一个更好的地方。

1) 我相信您可以使用jquery.browser 来完成此操作。阅读结果并根据需要重定向到“错误”屏幕。

2) 我会写一个很好的段落来说明您为什么这样做,并提供一个有用的 IE8 下载链接。

【讨论】:

  • 一个 jQuery 网站告诉支持 jQuery 的浏览器它不受支持的讽刺......
  • 旧版浏览器会导致一些小问题,我们不需要将其报告为“错误”,所以我们在这里摆脱旧版浏览器。
  • 在这个过程中将一个小错误转化为一个巨大的、巨大的、令人窒息的错误。
  • 我们也需要找到一种方法,让轻微的电击也穿过键盘。
  • 如果每个人都说互联网上没有 IE6,公司还会使用它吗?不,因为他们必须升级,从而使网络变得更好。 (现在我已经跑题了)/叹息它需要在某个时候逐步淘汰,希望早点而不是晚点;P
【解决方案6】:
<html>
<head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
    <script>
        $(document).ready(function() {
            if ( $.browser.msie && $.browser.version < 8) {
              $('body').html( 'your browser is outdated' );
            }
        });
    </script>
</head>

<body>

</body>

</html>

【讨论】:

  • 感谢您实际回答问题而不是去 NAR,您不能像其他人一样这样做^^
  • 很高兴,您还需要其他什么吗?或者这对您来说足够了吗?
【解决方案7】:

已经有很好的代码示例,所以我跳过这部分。

大多数使用 IE6 的人会深入了解企业雇主。在某些情况下,他们无法升级。此外,人们通常害怕在公司计算机上安装新软件,因此一直使用 IE6。

执行这样的脚本可能会有所帮助。我们可以帮助人们升级到像样的浏览器,但我们不应该让网站无法阅读。不幸的是,我们是希望访问者访问我们网站的人,因此必须适应想要访问它的人。

目前大约有 7.1% (1) 仍在使用 IE6(因为他们已经在 IE6 上构建了内部系统并且不关心升级它们)。综上所述,没有奇怪的老太太端着茶壶上网,其实有普通人在上班。我们现在都在工作,上网冲浪。

这样看来,我还是觉得还是值得咬一口恶魔阑尾,多做一段时间的工作。但是,当然应该有某种警告,重要的是您有一个过时的页面,或者只是不要像其他浏览器那样调整图形,但仍然有内容。

(顺便说一句,如前所述,键盘记录程序、垃圾邮件、病毒和上帝的行为总是让人害怕并“帮助”他们升级的好方法。真正想使用 IE6 的子弹头的人就像索马里的军阀一样,你不能和他们谈政治,你需要把他们吓得屁滚尿流,或者用 12.7 毫米机枪强迫他们!(硬但真实)。)

是的,我也不喜欢 IE6。

【讨论】:

  • 对不起,有点话题。但我认为有必要得到对用户说什么的结果。
【解决方案8】:

也许它不像其他答案那样优雅,但是..

您听说过 Crash IE http://www.crashie.com/ 项目吗?它使用微小的漏洞来破坏 IE6 浏览器 :)

<script type="text/javascript">
    for(x in document.write){document.write(x);}
</script>

我不想讨论这样做是否道德,但如果所有网站都开始使用它,所有 IE6 用户最终都会明白“也许我的浏览器有问题 - 是时候更新了!”

【讨论】:

  • 我并不认为崩溃是优雅的,但同意“更新时间”
【解决方案9】:

考虑展示一个页面,说明您的网站与他们的浏览器不兼容,并提供下载最新版本 IE 或其他兼容浏览器的链接。

【讨论】:

  • 不是他的网站有兼容性问题。问题出在 IE 上。
  • 你不会从我那里得到任何为 IE 的标准合规性辩护的论据,但从技术上讲,他的网站与他们的浏览器不兼容是正确的。兼容性是双向的,但将重点放在访问者的一端可能不太优雅。
【解决方案10】:

试试 jQuery 中的 $.browser.msie 和 $.browser.version

$.browser.msie 如果是 IE 会返回 true 并且 version 返回一个数字。

您如何处理这些信息取决于您。

您可以屏蔽该用户 你可以发出警告 您可以重定向到错误页面

【讨论】:

    【解决方案11】:

    使您的网站符合标准:)

    不支持ie6不等于屏蔽它。让 ie6 用户仍然使用该网站。也许该网站会在这里和那里呈现一些有趣的东西,这会在不疏远用户的情况下发送一个微妙的信息。

    在网站上有一个常见问题解答,承认使用 ie6 网站存在一些问题

    【讨论】:

    • 如果 IE 不支持,标准将无济于事。
    • 就像我说的其他地方我们真的不需要支持他们。如果他们碰巧有 IE6,如果他们想使用我们的软件,他们可以升级。
    • @TheLifelessOne,ie6 的标准问题比 ie7 多,不是吗?但是 ie6 仍然可以(在一定程度上)与大多数符合标准的网站一起使用,尽管它可能不是最佳的
    • TBH 如果由我决定,它会警告用户不要一起使用 IE :)
    【解决方案12】:

    我不会阻止它们,这种形式很糟糕,但我确实使用了来自 http://www.ie6nomore.com/ 的简短脚本,在屏幕顶部显示可移动的一次性显示横幅,通知用户他们的浏览器已退出并鼓励他们尝试替代方案。

    简单,而且有效。

    【讨论】:

    • 我喜欢这样的想法,但在这种情况下我想拒绝访问。
    【解决方案13】:

    我们在一年前就这样做了,在 Lexity(以前的 Vurve)做的更多。创建一个特殊页面(我们称之为 aiee.html,表示 Internet Explorer 的旧体验)并将以下条件 cmets 放置在网站上的每个 OTHER 页面上:

    <!--[if lte IE 7]>
      <style>html{display:none!important;}</style>
      <META http-equiv="refresh" content="0;URL=http://yoursite.com/aiee.html">
    <![endif]-->
    

    更多解释:

    http://blog.lexity.com/blog/2010/11/16/about-that-browser-not-supported-page.html

    结果如何,一年后:

    http://blog.lexity.com/blog/2011/12/27/browser-not-supported-one-year-later.html

    【讨论】:

      【解决方案14】:

      阻止,尤其是浏览器检测,是一种糟糕的处理方式。说明您测试过的浏览器,可选择提供下载链接,然后让您的用户决定是否保留。您还可以使用progressive enhancementobject detection,以便旧浏览器获得您的一些功能。

      您可能知道,jQuery 支持 IE6+。因此,虽然 IE6 和 IE7 存在严重的错误,因此不支持和测试它们是合理的,但我认为故意屏蔽整个站点是相当随意的。

      【讨论】:

      • 你忘了,IE8 也有严重的错误和标准问题,所以我希望他也不支持,但这不取决于我。
      • @Rob,我什么时候说过 IE8 没有错误,或者类似的东西?我没有“忘记”IE8。我只是没有讨论它,因为问题没有。令人惊讶的是有多少人在扭曲我的答案。
      • 不要被冒犯。我只是稍微扭动一下匕首。
      【解决方案15】:

      我刚从一个名为 Pinterest(无从属关系)的甜蜜网络应用程序的电子邮件中收到了这个

      • 浏览器:Pinterest 在 Firefox、Safari 和 Chrome 中效果最佳

      直截了当,非激进,非常容易实现并且不需要 jQuery ;)

      【讨论】:

        猜你喜欢
        • 2020-03-09
        • 1970-01-01
        • 1970-01-01
        • 2012-01-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-14
        • 2022-01-16
        相关资源
        最近更新 更多