Т.к. фиксированая позиция элементов в ИЕ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 ) Тосообщение в ФФ и Опере выскакивает а в ИЕ не работает. В чем дело?
По теме: <!--[if lt IE 7]> <script type="text/javascript"> alert(); </script> <![endif]--> Не по теме: http://softwaremaniacs.org/blog/2005/08 ... sitioning/
Думаеш я не читал? Вездбе есть примеры с абсолютными и реальтывными позициями а фиксированые раз и пропускают да и сами они проверяют на ФФ. Я прам из тотура копировал и вставлял в хтмл, и всегда один и тотже исход: все работает в ИЕ кроме фиксированой позиции. Да и алерт тоже не радотает при сравненнии, если сделать при клике все ок...
Люди, забейте гвоздь на isIE() и им подобные. Давным давно такой подход устарел. Проверяйте на наличие нужных вам свойств там где надо: if (!window.addEventListener) { alert('Мы долб..ы, соптимизировали все под один браузер'); }
Эту ссылку? Думаю, что не читал. Потому что там описан способ с помощью css добиться от IE эффекта как от position: fixed
vasa_c, не скажи. в некоторых случаях обработка одного и того же настолько различна, что проще написать для ИЕ отдельный код, чем проверять десяток условий образуя кашу.
dark-demon, неа. Нет никаких канонический IE и FF. В различных версиях (и подверсиях, и тех же версиях только с другими надстройками) все может быть абсолютно по разному. Тем более ECMA 3-й редакции во всей реализована достаточно одинаково и в достаточно полной мере, так что десятка условий не будет (если не лезть конечно в behavior, canvas и другие навороты). Большинство даже не знают, что document.all давным давно реализован и в "других" браузерах.
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...
Упростить не упрощу, но сделать более совместимым и учитывающим возможные последующие изменения в браузерах, пожалуйста: [js]if (window.getSelection) { var sel = window.getSelection(); ... } else if (document.selection) { ... }[/js] Нет, потому что они вообще не знают что такое quirks mode, потому что лень немножко почитать про современное положение вещей, потому что легче взять откуда-нибудь скрипт 10-летней давности и запихать к себе, а потом ходить по форумам и спрашивать, почему все криво работает
о каких изменениях идёт речь? что ИЕ начнёт поддерживать window.getSelection()? и поэтому нам нужно бежать использовать дом-хак на три строчки, который ещё не известно как будущие версии ИЕ переварят? да уж лучше бы остальные реализовали свойство htmlText для Range. что-то я не помню скриптов реализующих такой функционал: Код (Text): document.all['div']... именно с квадратными скобками и именно в стандартном режиме.
Это не DOM-хак, это проверка наличия нужного функционала. Это глубочайшим образом не ко мне. Видимо ты их мало видел
[js]var tempel= document.createElement('div'); tempel.appendChild (ran.cloneContents()); var html= tempel.innerHTML;[/js] это иначе как дом-хаком я назвать не могу. конкретней, плиз.
Причем тут это? Причем тут дум-хак? Эти три строчки написал изначально ты. Я только условие поменял. Проверяем не в виде: Это IE -> значит есть такое-то свойство, используем его -> если не IE, значит это FF (как будто только 2 браузера есть), используем другое свойство а в виде: Есть свойство -> используем -> нет, смотрим есть ли альтернативное, используем его Идешь в любое хранилище бесплатных скриптов и в каждом втором находишь, что-то типа: [js]isIE = document.all ? true : false; ... if (isIE) { document.all['div'].... } else { document.getElementById(... }[/js]
Понятия не имею причем тут FF и какое отношение твои последние посты имеют к изначальной причине спора. А изначальная причина следующая: как правильно, определять модель браузера и ветвить дальше в зависимости от нее, или же в каждом конкретном случае выбирать поддерживаемую возможность? Эта та ахинея, которой полинтернета забито. И которая основана на твоем подходе.