6

我想知道当浏览器是 Internet Explorer IE8 或更早版本时,是否可以显示警告或打开一个弹出窗口,表示将您的 IE 更新到最新版本或使用 Firefox / Chrome / Safari 代替......

我想我应该在标签内使用下面的代码......

<!--[if lt IE 9]>
...i should use code here...
<![endif]-->

使用 jQuery 欺骗浏览器并加载 jQuery lib 是否明智?还是只使用常规 javascript 以避免非常旧的浏览器出现其他问题更好?

4

8 回答 8

6

你可以使用这样的东西

ie6-upgrade-warning 是一个小脚本 (7.9kb),它礼貌地显示警告消息,通知用户将浏览器升级到更新版本(提供最新的 IE、Firefox、Opera、Safari、Chrome 的链接)。

该网页在透明背景下仍然可见,但无法访问它。这个想法是迫使用户从 IE6 升级,并避免网站因网站在 IE6 中无法正确呈现而受到不良声誉。

该脚本完全可以翻译成任何语言,非常容易设置(网页中的一行代码和一个参数配置)。

尽管创建是为了与 IE6 用户一起使用,但使用正确的参数,您可以将其用于您的方案。

于 2012-04-06T14:32:46.587 回答
6

你有两个选择:

  1. 解析User-Agent String

    // Returns the version of Internet Explorer or a -1
    // (indicating the use of another browser).
    function getInternetExplorerVersion() {
        var rv = -1; // Return value assumes failure.
    
        if (navigator.appName == 'Microsoft Internet Explorer') {
            var ua = navigator.userAgent;
            var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    
            if (re.exec(ua) != null) {
                rv = parseFloat( RegExp.$1 );
            }
        }
    
        return rv;
    }
    
    function checkVersion() {
        var msg = "You're not using Internet Explorer.";
        var ver = getInternetExplorerVersion();
    
        if ( ver > -1 ) {
            if ( ver >= 9.0 ) {
                msg = "You're using a recent copy of Internet Explorer."
            }
            else {
                msg = "You should upgrade your copy of Internet Explorer.";
            }
        }
        alert(msg);
    }
    
  2. 使用条件注释:

    <!--[if gte IE 9]>
    <p>You're using a recent version of Internet Explorer.</p>
    <![endif]-->
    
    <!--[if lt IE 8]>
    <p>Hm. You should upgrade your copy of Internet Explorer.</p>
    <![endif]-->
    
    <![if !IE]>
    <p>You're not using Internet Explorer.</p>
    <![endif]>
    

参考:更有效地检测 Windows Internet Explorer

于 2012-04-06T18:07:48.840 回答
5
<script> var ISOLDIE = false; </script>
<!--[if lt IE 9]>
     <script> var ISOLDIE = true; </script>
<![endif]-->

然后稍后,您想在代码中支持旧版本 IE 的地方划定界限:

<script>

     if(ISOLDIE) {
          alert("Your browser currently does not support this feature. Please upgrade.");
          window.location = 'http://google.com/chrome';
     }

</script>

完全删除 IE8 支持通常不是一个好主意,这就是为什么我认为上述解决方案是一个很好的折衷方案,因为您可以将它添加到您的网站/Web 应用程序的组件中,而这些组件根本无法支持 IE8,但是您可以(可能)仍然在您网站的其他区域支持 IE8。

于 2012-04-06T14:29:09.260 回答
2

有一个荷兰网站强制 IE6 和更低版本的用户升级他们的浏览器,对“If IE”代码进行一些调整,你可以阻止任何你喜欢的版本。

http://wijstoppenook.nl/nl/

向下滚动到第 4 步并单击下载或“voorbeeld”进行演示,第一个是顶部横幅,第二个完全阻止页面。

唯一的缺点,它都是荷兰语,所以你必须自己编造信息。

于 2012-04-06T14:32:50.413 回答
1

IE 10 不再支持条件注释。 WTF!关联

于 2014-08-11T10:21:22.273 回答
0

在您的网站上将您的代码添加到 index.html 或 index.php

它的工作也是 joomla 和 wordpress。

<!--[if IE 5]>
<script language="Javascript">
<!--
alert ("It looks like you aren't using Internet Explorer 7. To see our site correctly, please update.")
//-->
</script>
<![endif]-->
<!--[if IE 5.0]>
!--
alert ("It looks like you aren't using Internet Explorer 7. To see our site correctly, please update.")
//-->
</script>
<![endif]-->
<!--[if IE 5.5]>
!--
alert ("It looks like you aren't using Internet Explorer 7. To see our site correctly, please update.")
//-->
</script>
<![endif]-->
<!--[if IE 6]>
!--
alert ("It looks like you aren't using Internet Explorer 7. To see our site correctly, please update.")
//-->
</script>
<![endif]-->

<!--[if IE 7]>
!--
alert ("It looks like you aren't using Internet Explorer 7. To see our site correctly, please update.")
//-->
</script>
<![endif]-->

<!--[if IE 8]>
!--
alert ("It looks like you aren't using Internet Explorer 8. To see our site correctly, please update.")
//-->
</script>
<![endif]-->
于 2014-10-31T13:44:23.270 回答
0

有很多方法,但这是迄今为止最优雅的:http: //outdatedbrowser.com/en/how

于 2017-08-29T03:30:42.180 回答
0

这就是我所拥有的,它在引导下载中:

<!--[if lt IE 8]>
  <p class="browserupgrade">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
<![endif]-->

所以基本上你可以拥有ltlte至小于或等于。

于 2021-10-11T11:56:42.337 回答