2013-02-11 71 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]-->