Можно ли полностью запретить конкретному веб-браузеру доступ к веб-приложению? - PullRequest
1 голос
/ 01 марта 2011

Я много тестировал браузеры, и должен сказать, что это проклятие моего существования. Мои красивые шрифты запятнаны в определенных браузерах и определенных средах. Несмотря на наличие одного и того же кода в двух разных браузерах, контент отображается совершенно разными способами. Это не секрет, конечно. Но что мне интересно, если есть способ буквально заблокировать доступ к HTML-странице от пользователей с определенными браузерами?

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

block.css
тело {дисплей: нет; } * +1010 *

Профессионально, я обязан поддерживать все браузеры и среды, которые мои пользователи могут захотеть использовать. И действительно, не так уж плохо узнать, как и почему каждый браузер работает так, как он. Но для сторонних проектов было бы неплохо не беспокоиться о том, буду ли я отстранен от общества за то, что не поддерживаю браузер x.

Также обратите внимание, что я не назвал конкретный браузер как особенно несовершенный, поэтому, пожалуйста, не стесняйтесь опускать любые "браузер х отстой!" комментарии.

Ответы [ 3 ]

1 голос
/ 01 марта 2011

Есть несколько способов сделать это:

  1. Вы можете сделать это с вашим веб-сервером (я не знаю, что вы используете)
  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 голосов
/ 01 марта 2011

Вы можете использовать что-то вроде:

<?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/, чтобы помочь

0 голосов
/ 01 марта 2011

Да, возможно, но это неосуществимо, поскольку любой современный браузер позволит вам изменить строку пользовательского агента и, таким образом (вероятно) обойти ваши проверки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...