如果IE8或更早版本强制浏览器更新

时间:2012-04-06 14:25:27

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

我想知道是否有可能显示警告或打开弹出窗口,当浏览器是Internet Explorer IE8或更早版本时,可能会将IE更新为最新版本或使用Firefox / Chrome / Safari ...

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

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

使用jQuery欺骗浏览器并加载jQuery lib是否聪明?或者,为了避免使用非常旧的浏览器出现其他问题,最好只使用常规的JavaScript吗?

7 个答案:

答案 0 :(得分:6)

您可以使用this

之类的内容
  

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

     

网页仍然可以在透明背景后面看到,但是可以防止访问它。我们的想法是强迫用户从IE6升级,避免网站因网站在IE6中无法正确呈现而声名狼借。

     

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

虽然创建用于IE6用户,但使用正确的参数可以将其用于您的场景。

答案 1 :(得分: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]>
    
  3. 参考:Detecting Windows Internet Explorer More Effectively

答案 2 :(得分: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在你网站的其他方面。

答案 3 :(得分:2)

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

http://wijstoppenook.nl/nl/

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

唯一的缺点,它全部在荷兰,所以你必须自己制作信息。

答案 4 :(得分:1)

IE 10中不再支持条件注释.WTF! Link

答案 5 :(得分: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]-->

答案 6 :(得分:0)

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