За последние 24 часа нас посетили 17334 программиста и 1261 робот. Сейчас ищут 1566 программистов ...

alert при условии в ИЕ

Тема в разделе "JavaScript и AJAX", создана пользователем xak2, 3 май 2007.

  1. xak2

    xak2 Guest

    Т.к. фиксированая позиция элементов в ИЕ6 не работает я решил просто предупреждать народ о не корректном отображении страницы в случаи использовании ИЕ ниже 7.

    [js]<script type="text/javascript" language="javascript">
    function isIE5() { return (navigator.userAgent.indexOf("MSIE 5") > -1); }
    function isIE6() { return ((navigator.userAgent.indexOf("MSIE 6") > -1) && (navigator.userAgent.indexOf("Opera") == -1)); }
    function isIE() { return (isIE5() || isIE6());}

    var isIE = isIE();
    if ( isIE ) window.attachEvent("onload", alert('Извините!\n\nНаш сайт полностью оптимизирован под Mozilla Firefox или Opera.\nВаша версия браузера устарела и настоятельно рекомендуем вам обратится за обновлениями к Microsoft или скачать и установить выше перечисленные браузера!\n\nВ вашем случаи отображение страница будет не корректным, возможы искажения и отображение эллементов в неправельных местах.'));
    </script>[/js]

    не работает почемута в томже ИЕ.
    Если я ставлю:
    if ( isIE == false )

    Тосообщение в ФФ и Опере выскакивает а в ИЕ не работает. В чем дело?
     
  2. eduha

    eduha Активный пользователь

    С нами с:
    8 ноя 2006
    Сообщения:
    278
    Симпатии:
    0
    Адрес:
    Караганда
  3. xak2

    xak2 Guest

    Думаеш я не читал? Вездбе есть примеры с абсолютными и реальтывными позициями а фиксированые раз и пропускают да и сами они проверяют на ФФ. Я прам из тотура копировал и вставлял в хтмл, и всегда один и тотже исход: все работает в ИЕ кроме фиксированой позиции. Да и алерт тоже не радотает при сравненнии, если сделать при клике все ок...
     
  4. xak2

    xak2 Guest

    Крч спасибо с позицией разобрался только такая замарока это все...
     
  5. vasa_c

    vasa_c Активный пользователь

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    Люди, забейте гвоздь на isIE() и им подобные. Давным давно такой подход устарел.
    Проверяйте на наличие нужных вам свойств там где надо:
    if (!window.addEventListener) {
    alert('Мы долб..ы, соптимизировали все под один браузер');
    }
     
  6. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    +1 :)
     
  7. eduha

    eduha Активный пользователь

    С нами с:
    8 ноя 2006
    Сообщения:
    278
    Симпатии:
    0
    Адрес:
    Караганда
    Эту ссылку? Думаю, что не читал. Потому что там описан способ с помощью css добиться от IE эффекта как от position: fixed
     
  8. simpson

    simpson Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    это 5! =)
     
  9. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    vasa_c, не скажи. в некоторых случаях обработка одного и того же настолько различна, что проще написать для ИЕ отдельный код, чем проверять десяток условий образуя кашу.
     
  10. vasa_c

    vasa_c Активный пользователь

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    dark-demon, неа. Нет никаких канонический IE и FF. В различных версиях (и подверсиях, и тех же версиях только с другими надстройками) все может быть абсолютно по разному. Тем более ECMA 3-й редакции во всей реализована достаточно одинаково и в достаточно полной мере, так что десятка условий не будет (если не лезть конечно в behavior, canvas и другие навороты). Большинство даже не знают, что document.all давным давно реализован и в "других" браузерах.
     
  11. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    vasa_c, я бы так не говорил, если бы с этим не сталкивался.
    приведу пример: [js]function getSelectedHTML() {
    if (isIE) {
    var sel= document.selection;
    var ran= sel.createRange();
    var html= ran.htmlText;
    } else {
    var sel= window.getSelection();
    var ran= sel.getRangeAt(0);
    var tempel= document.createElement('div');
    tempel.appendChild (ran.cloneContents());
    var html= tempel.innerHTML;
    }
    return html;
    }
    [/js] сможешь его упростить?

    видимо потому, что не используют quirks mode...
     
  12. vasa_c

    vasa_c Активный пользователь

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    Упростить не упрощу, но сделать более совместимым и учитывающим возможные последующие изменения в браузерах, пожалуйста:
    [js]if (window.getSelection) {
    var sel = window.getSelection();
    ...
    } else if (document.selection) {
    ...
    }[/js]

    Нет, потому что они вообще не знают что такое quirks mode, потому что лень немножко почитать про современное положение вещей, потому что легче взять откуда-нибудь скрипт 10-летней давности и запихать к себе, а потом ходить по форумам и спрашивать, почему все криво работает
     
  13. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    о каких изменениях идёт речь? что ИЕ начнёт поддерживать window.getSelection()? и поэтому нам нужно бежать использовать дом-хак на три строчки, который ещё не известно как будущие версии ИЕ переварят? да уж лучше бы остальные реализовали свойство htmlText для Range.

    что-то я не помню скриптов реализующих такой функционал:
    Код (Text):
    1. document.all['div']...
    именно с квадратными скобками и именно в стандартном режиме.
     
  14. vasa_c

    vasa_c Активный пользователь

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    Это не DOM-хак, это проверка наличия нужного функционала.
    Это глубочайшим образом не ко мне.
    Видимо ты их мало видел
     
  15. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    [js]var tempel= document.createElement('div');
    tempel.appendChild (ran.cloneContents());
    var html= tempel.innerHTML;[/js] это иначе как дом-хаком я назвать не могу.

    конкретней, плиз.
     
  16. vasa_c

    vasa_c Активный пользователь

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    Причем тут это? Причем тут дум-хак? Эти три строчки написал изначально ты. Я только условие поменял. Проверяем не в виде:
    Это IE -> значит есть такое-то свойство, используем его -> если не IE, значит это FF (как будто только 2 браузера есть), используем другое свойство
    а в виде:
    Есть свойство -> используем -> нет, смотрим есть ли альтернативное, используем его

    Идешь в любое хранилище бесплатных скриптов и в каждом втором находишь, что-то типа:
    [js]isIE = document.all ? true : false;
    ...
    if (isIE) {
    document.all['div']....
    } else {
    document.getElementById(...
    }[/js]
     
  17. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    и причём тут FF? есть нормальные браузеры, а есть ИЕ.

    ну и что это за ахинея?
     
  18. vasa_c

    vasa_c Активный пользователь

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    Понятия не имею причем тут FF и какое отношение твои последние посты имеют к изначальной причине спора. А изначальная причина следующая: как правильно, определять модель браузера и ветвить дальше в зависимости от нее, или же в каждом конкретном случае выбирать поддерживаемую возможность?

    Эта та ахинея, которой полинтернета забито. И которая основана на твоем подходе.