Обнаружьте Internet Explorer 6 или ниже в jQuery

Если вы используете WebStorm Javascript IDE , вы можете просто открыть свой проект из WebStorm в своем браузере. WebStorm автоматически запустит сервер, и вы больше не получите никаких этих ошибок, потому что теперь вы получаете доступ к файлам с разрешенными / поддерживаемыми протоколами (HTTP).

45
задан ine 19 February 2009 в 17:24
поделиться

9 ответов

Вот так просто:

if($.browser.msie && $.browser.version=="6.0") alert("Im the annoying IE6");

Обновить

Обратите внимание, что $. Browser удален из jQuery 1.9

Если вам все еще нужно использовать $ .browser в jQuery 1.9 (или других устаревших функциях), попробуйте jQuery-migrate ( https://github.com/jquery/jquery-migrate/ - http://code.jquery.com/jquery-migrate-1.2.1.js )

102
ответ дан 26 November 2019 в 20:47
поделиться

Испытайте это:

 jQuery.each(jQuery.browser, function(i, val) {
  $("<div>" + i + " : <span>" + val + "</span>")
            .appendTo(document.body);
});

, если Вам нужно больше информации, относятся к этому:

http://docs.jquery.com/Utilities/jQuery.browser

0
ответ дан 8 November 2019 в 00:34
поделиться

jQuery проверяет на функции, а не "браузеры". Тем не менее можно использовать метод jQuery.support для обнаружения то, к чему пользовательский браузер способен.

Устаревшие методы (Не используют)

  • $ .browser.version
  • .boxModel

http://docs.jquery.com/Utilities/jQuery.support $ .browser $ даст Вам, сводка которых функции поддерживаются который браузеры. Беря те данные, Вы разработаете пару условных проверок, чтобы определить, является ли используемый браузер Вашим целевым браузером или нет.

16
ответ дан Sampson 8 November 2019 в 00:34
поделиться

http://docs.jquery.com/Utilities/jQuery.browser.version - то, как

ОТРЕДАКТИРОВАЛ: Исправленная ссылка от Douglas

http://api.jquery.com/jQuery.browser/#jQuery.browser.version

, который я имею в виду, если у Вас была старая версия не последние 1.3...

кроме того, другая положительная сторона - то, что с JQuery, Вы, как предполагается, не волнуетесь о версии. JQuery действительно показывает тестирование и обрабатывает всю эту выдумку для Вас. Волнение по поводу версий и платформ является симпатичным 1999

0
ответ дан MrChrister 8 November 2019 в 00:34
поделиться

Вы также можете напрямую спросить IE.

<!--[if lte IE 6]>
<script type="text/javascript">
  var isRunningIE6OrBelow = true;
</script>
<![endif]-->
50
ответ дан 26 November 2019 в 20:47
поделиться

Очень хороший способ обнаружить IE:

if ('v'=='\v') {
   welcome to IE )) 
}

К сожалению, он не может распознать свою версию, но не всегда необходим.

6
ответ дан 26 November 2019 в 20:47
поделиться

Еще один хороший момент заключается в том, что с JQuery вам не нужно беспокоиться о версии.

Это не поможет, если вы используете jquery для исправления ошибки рендеринга CSS в IE6.

3
ответ дан 26 November 2019 в 20:47
поделиться

«Хотя вряд ли jQuery.browser будет удален, все усилия использовать jQuery.support и соответствующая функция должно быть обнаружено ».

Так что я говорю, продолжайте и используйте его. Они должны поддерживать обратную совместимость со сценариями, которые все еще используют метод сниффинга пользовательского агента.

0
ответ дан 26 November 2019 в 20:47
поделиться

Я не уверен, что он должен работать в этом пути, но вы получаете доступ к this.value и this.name в одном и том же обратном вызове. Предполагается, что этот ссылается на event.currentTarget , который в данном случае является элементом SELECT.

В этом случае this.value будет неопределенным, но вместо этого можно попробовать использовать $ (this) .val (); .

Вы пытались утешить переменные?

-121--4067287-

Как указано выше, сеансы, файлы cookie и IP-адреса неэффективны - злоумышленник может манипулировать всеми.

Если вы хотите предотвратить атаки грубой силы, то единственное практическое решение - основывать количество попыток на предоставленном имени пользователя, однако обратите внимание, что это позволяет злоумышленнику осуществлять DOS сайта, блокируя действительные пользователи от входа в систему.

например.

$valid=check_auth($_POST['USERNAME'],$_POST['PASSWD']);
$delay=get_delay($_POST['USERNAME'],$valid);

if (!$valid) {
   header("Location: login.php");
   exit;
}
...
function get_delay($username,$authenticated)
{
    $loginfile=SOME_BASE_DIR . md5($username);
    if (@filemtime($loginfile)<time()-8600) {
       // last login was never or over a day ago
       return 0;
    }
    $attempts=(integer)file_get_contents($loginfile);
    $delay=$attempts ? pow(2,$attempts) : 0;
    $next_value=$authenticated ? 0 : $attempts + 1;
    file_put_contents($loginfile, $next_value);
    sleep($delay); // NB this is done regardless if passwd valid
    // you might want to put in your own garbage collection here
 }

Обратите внимание на то, что эта процедура, как написано, утекает информацию о безопасности, т.е. кто-то, атакующий систему, может увидеть, когда пользователь войдет в систему (время ответа на попытку злоумышленников снизится до 0). Можно также настроить алгоритм так, чтобы задержка вычислялась на основе предыдущей задержки и метки времени в файле.

HTH

C.

-121--1018877-

Я часто проверяю версию браузера. Метод .support великолепен, но он не помогает, когда нужно скрыть выбранные элементы при наложении. Отсутствует «поддержка выбора элементов управления с окнами». Вам просто нужно проверить версию браузера, поэтому я бы сказал, что ошибка в сторону метода .support, где вы можете, и использовать .browser, когда это необходимо.

3
ответ дан 26 November 2019 в 20:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: