2011-03-01 22 views
1

我一直在做很多跨瀏覽器測試,我必須說這是我存在的禍根。我的美麗字體在特定的瀏覽器和特定的環境中都很流行。儘管在兩個獨立的瀏覽器中具有完全相同的代碼,但內容呈現的方式完全不同。當然這不是祕密。但是我想知道的是,是否有一種方法可以從具有特定瀏覽器的用戶中真正阻止訪問HTML頁面?是否有可能完全否認特定的Web瀏覽器訪問Web應用程序?

<!--[if IE/Safari/Firefox/Chrome/Opera/etc]>
<link rel="stylesheet" href="/stylesheets/block.css" type="text/css" />
<![endif]-->

block.css
體{顯示:無; }

專業上,我有義務支持我的用戶可能覺得他們想要使用的所有瀏覽器和環境。並且瞭解每個瀏覽器如何以及如何按照它的行爲來學習如何和爲什麼並不那麼糟糕。但對於副作用來說,不用擔心我是否會因爲不支持瀏覽器x而被社會排斥在外。

另外請注意,我沒有把特定的瀏覽器稱爲特別不足,所以請隨時忽略任何「瀏覽器x糟糕!」註釋。

回答

1

有幾種方法可以做到這一點:

  1. 你可以使用你的Web服務器做到這一點(我不知道你使用的是什麼)
  2. 你可以在你的服務器代碼(你正在使用的再次,不知道)這樣做
  3. 你可以用JavaScript做到這一點:

    if(<BROWSER SUCKS>) { window.location = "YOUR-ERROR-PAGE.html"; }

或者

if(<BROWSER SUCKS>) { 
    alert("Your browser sucks, use 'xyz' instead."); 
} 

您的代碼將需要看window.navigator對象來檢測瀏覽器的類型。

特別是與上述關於你的榜樣,隱藏網頁中,如果瀏覽器吸,你可以使用: document.body.style.display = "none";

0

是的,可能,但它不可行,因爲任何現代瀏覽器都會讓您更改用戶代理字符串,因此(可能)繞過您的支票。

0

您可以使用類似:

<?php 
$using_ie6 = (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6.') !== FALSE); 
if($using_ie6) { 
    die('Sorry, your browser is not supported'); 
} 
?> 

和修改根據您希望阻止其瀏覽器,顯然上述將允許你阻止IE6。

您可以使用http://www.useragentstring.com/幫助

相關問題