我一直在開發一個Web應用程序,並且我注意到在使用IE進行測試時,某些關鍵顯示元素存在主要問題。出於這個原因,我需要阻止來自IE用戶的Web應用程序,並將它們發送到另一個頁面以下載Firefox或Chrome。如何確定用戶是否在IE上...並將它們發送到說我的web應用程序在IE上不受支持的頁面?
我一直在尋找一種方式來做到這一點,但我無法找到任何簡單的指南,只適用於IE瀏覽器。我發現並嘗試了一些片段,但它們不起作用,因爲它們僅用於確定和打印瀏覽器/操作系統等。信息。我真的很感謝你的幫助!
我一直在開發一個Web應用程序,並且我注意到在使用IE進行測試時,某些關鍵顯示元素存在主要問題。出於這個原因,我需要阻止來自IE用戶的Web應用程序,並將它們發送到另一個頁面以下載Firefox或Chrome。如何確定用戶是否在IE上...並將它們發送到說我的web應用程序在IE上不受支持的頁面?
我一直在尋找一種方式來做到這一點,但我無法找到任何簡單的指南,只適用於IE瀏覽器。我發現並嘗試了一些片段,但它們不起作用,因爲它們僅用於確定和打印瀏覽器/操作系統等。信息。我真的很感謝你的幫助!
一種方法是檢查用戶代理,並且你可以通過$_SERVER['HTTP_USER_AGENT']
if(preg_match('/MSIE/i',$_SERVER['HTTP_USER_AGENT']))
{
// Internet Explorer!
// header("Location: noie.php");
// exit();
}
訪問此然而,這並不是總是可靠的,所以另一種方法是檢查,看看你的特點是通過javascript可用,如:
if(window.localStorage){
// you can use local storage
} else {
// you can't
}
如果這看起來像一個痛苦(而且是),我強烈建議檢查Modernizer以幫助您檢測功能。
那麼你也可以使用此代碼http://www.ie6nomore.com/
瀏覽器嗅探在服務器端是一個糟糕的主意,因爲這是不可靠的,而不是一個證明,一個給定的瀏覽器無法使用您的應用。
首先,某些瀏覽器(如Opera)可以/將在另一個用戶代理髮送,因爲它使得瀏覽器更「兼容」(換句話說,它的工作原理周圍的非常技術計劃使用)。
其次,這不是因爲它是Internet Explorer,它不一定會工作。您的嘗試也將排除Internet Explorer 9,它有很好的機會與您的網絡應用程序兼容。
相反,你應該在客戶端,檢查功能,你希望是確實有。你依靠document.getElementsByClassName
?試試這個:
if (document.getElementByClassName == undefined)
document.location.replace('Unsupported browser URL here');
你依靠<canvas>
?試試這個:
if (document.getElementById('canvas-element').getContext == undefined)
document.location.replace('Unsupported browser URL here');
你依靠複雜的CSS3規則?有這樣的規則隱藏了一個旨在傳統瀏覽器的消息。
.error-message:not(.unexistant-class) {
/* this rule will be dropped by browsers that don't support the not()
selector */
display:none;
}
總之,檢查功能而不是用戶代理。如果客戶擁有你想要的所有功能,那麼沒有理由放棄它。
不要完全阻止它,請考慮一條提供信息的消息。這是偶然也是在IE是一次有點用的:
<!--[if IE]><div class="info-bar">Your browser is not supported. Some
parts of this application might be non-functional.</div><![endif]-->
或者,如果OP確實需要阻止所有內容,可以在'
'標籤中使用這種代碼來提供一個CSS文件,該文件將所有內容都設置爲'display:none;'*,*爲消息。它可以阻止所有不懂得解決問題的人,而且這些用戶可能足夠聰明,可以使用首先支持的瀏覽器(或者當他們看到您留言時使用)。 – 2011-03-27 22:06:30謝謝。我相信我會認爲這是一種替代方案......但這非常依賴於jQuery,它(我確信你們都知道)對IE來說是一種痛苦。 – 2011-03-28 21:18:02
@Jonathan:條件評論技巧不依賴於jQuery或Javascript。這是一個內置的IE功能。 – mario 2011-03-28 21:21:14
,而不是阻止他們訪問該網站完全是,是不是顯得更友好的用戶只顯示*警告*它將無法正確顯示在他們的瀏覽器中,但仍然*允許*他們嘗試,如果他們真的想要?當然,如果你打算將瀏覽器列入黑名單,只能阻止那些你真正知道的問題(IE到版本X,但不是所有未來版本的IE) – jalf 2011-03-27 21:56:20
你是否願意這樣做?你知道所有的潛在用戶/客戶願意或者確實可以安裝另一個瀏覽器嗎? IE瀏覽器仍然佔已安裝瀏覽器基礎的很大一部分,你可能不喜歡,但可能不得不忍受。 – AAT 2011-03-27 22:11:23
修復你的應用程序,不要指望其他人改變那裏的瀏覽器,因爲你不能編碼。 – 2011-03-27 22:35:33