<rmcreative>

RSS

32 байта на распознавание IE

28 января 2009

Andrea Giammarchi представил минимальный код для определения IE:

try{IE=window=!1}catch(e){IE=!0}

А Gareth Heyes показал код покороче:

if("v"=="v")

Комментарии RSS

  1. №1170
    Octane
    Octane 28 янв. 2009 г., 17:00:04

    Условная компиляция не является никаким хаком, это совершенно естественная конструкция для JScript, который поддерживает IE, вместо обычного JavaScript, поэтому определение IE в таком более коротком виде:

    var ie /*@cc_on = 1 @*/;

    совершенно нормально, да и все JavaScript-компрессоры вроде уже научились обрабатывать уловную копиляцию.

    И там щас в статье этот способ уже зачеркнут :)

  2. №1171
    Sam
    Sam 28 янв. 2009 г., 17:07:23

    Спасибо, что вернул на страничку ещё раз :)

    Новый код очень даже…

    var IE='\v'=='v'
  3. №1172
    Vii
    Vii 28 янв. 2009 г., 22:34:53

    А эту "штуковину" понимают все IE или какой-то из 6, 7, 8?

  4. №1173
    Sam
    Sam 28 янв. 2009 г., 23:08:26

    Вроде все.

  5. №1177
    Евгений
    Евгений 29 янв. 2009 г., 11:09:21

    Еще вариант:

    IE=!!top.execScript
  6. №1180
    mihdan
    mihdan 29 янв. 2009 г., 13:47:39

    Интересно. Спасибо

  7. №2144
    Aleko
    Aleko 08 янв. 2010 г., 7:09:37

    Я придумал способ ещё короче:

    !-[1,]

    или даже так

    -[1,]

    но во втором случае IE вернет NaN а остальные браузеры вернут -1.

    Тоесть возможно будет выражение

    if(-[1,]){ Для нормальных браузеров }else{ Для эксплорера }

    На сколько я знаю, короче моего решения ещё никто не придумал. Подробнее здесь: Определение IE в 5 байт

  8. №3772
    Сергей
    Сергей 20 янв. 2011 г., 21:02:39
    if(!+"\v1") // true only in IE

    все выше не работает!!! я пробовал, а этот пашет)

  1. Почта опубликована не будет.

  2. Можно использовать синтаксис Markdown или HTML.

  3. Введите ответ в поле. Щёлкните, чтобы получить другую задачу.