2013-02-11 70 views
1

在我的头,我有:重定向非IE用户

<!--[if lte IE 8]> 
<meta http-equiv="refresh" content="0; url=/ie-sucks" /> 
<script type="text/javascript"> 
    /* <![CDATA[ */ 
    window.top.location = '/ie-sucks'; 
    /* ]]> */ 
</script> 

上面的代码很容易地重定向用户,其使用< IE 8到另一个地方ie-sucks

因此,这是工作的罚款,但我只是检查用户,在他们重定向到/ ie-sucks后,他们打开Mozilla Firefox并再次将mysite.com/ie-sucks粘贴到地址栏中,然后再次遇到该页面。 。

我知道这是愚蠢的,但我需要他们从该页面重定向到主网站,如果他们不低于比IE8或使用其他浏览器...

我固定的IE用户使用此:

<!--[if !lte IE 8]> 

但这种代码不会对Fiefox用户应用...

我怎么能检测非IE用户,将用户重定向?

预先感谢

回答

1

<!--[if ... ]>将只能由IE处理,这就是诀窍。

对于重定向Firefox或其他浏览器,您应该更好地分离用户代理(但请记住,更改用户代理非常简单!)。这可以做到使用PHP例如:

<?php 

$useragent = $_SERVER['HTTP_USER_AGENT']; //get the user agent 

if(!strpos($useragent, "MSIE")) { 
    // user agents from IE should always look like this and include 'MSIE': 
    // Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64) 
    header("Location: http://example.com/"); 
} 

?> 

还有可能通过处理用户代理这样一个JavaScript方法:

if(navigator.userAgent.indexOf('MSIE') == -1) { ... 

但再次:请记住,这也可能存在用户代理,它们的字符串中可能带有“MSIE”,或者带有Internet Explorer的用户会将其更改为“Firefox”或其他。所以这不是一个安全的解决方案,但我想,这可能是你的问题的答案。

PS:为什么要有人将IE浏览器的URL复制到浏览器并查看“这里没有IE需要”消息?任何人都应该知道,他没有真正使用IE,所以这不应该让人困惑。你在做很多想法。你无法弄清楚其他人会做的所有行为;)

+0

正如我所说,这很愚蠢,但我的网站用户正在这样做,我通过Google Analytics跟踪他们,其中2人看到了IE页面警报,然后打开Firefox并复制粘贴确切的页面URL到那个,所以他们看到了Firefox的页面... – behz4d 2013-02-11 12:19:14

+0

嘿嘿,这是一个很好的思考用户行为的方式,我真的很佩服,但你真的可以' t“修复”所有可能的想法。这可能是我,因为我有时也这样做。查看源代码并尝试使用URL,看看其他程序员是如何解决/设计这样一个部分的。但这两位用户的数量会有多少?如果他们是50%,你真的应该在意。如果他们只是0,005%,让他们尝试;) – ConcurrentHashMap 2013-02-11 12:25:07

1

你只是要自己绑起来节做你想要做的事。

如果用户在原始条件语句中使用IE8或更低版本,只需在页面顶部显示一条消息,那么该怎么办?

您的留言只会建议您升级浏览器或下载Chrome,Firefox或其他软件,并且还可以关闭/隐藏该信息。

<!--[if lte IE 8]> 
    .my-message { 
     display: block; 
    } 
<![endif]-->