Internet Explorer

индекс
108,76

IE8: наиболее полное описание нововведений для программиста (и не только)

Ниже представлен оригинал моей статьи принятой для публикации в отличный компьютерный журнал C`t, который, к сожалению, не выжил на рынке и пока пребывает в весьма подвешенном статусе. Статья не была опубликована из-за того, что выпуски больше не выходят. Поэтому я решил опубликовать ее на Хабре, благо она отлично попадает в формат.

Хотел бы сразу отметить, что статья достаточно объемная и часть информации уже была опубликована мной на Хабре. Цель данной статьи объединить максимальное количество информации про новую версию Internet Explorer и представить ее в приемлемом объеме.

В комментах принимаю замечания и исправления.

Введение


Браузер Internet Explorer имеет длинную историю, начавшуюся в 1995 году, когда в августе этого года компания Микрософт выпустила его, лицензировав у Spyglass, Inc. С тех пор прошло уже более 10 лет и Internet Explorer успел покорить мир, завоевав абсолютное большинство пользователей, а версия его вот-вот сменится на номер 8.

Несмотря на широкое распространение, Internet Explorer пользуется дурной славой у разработчиков web-проектов. Виной тому множество факторов, основными из которых, на мой взгляд, являются вялое внедрение стандартов консорциума W3C и очень медленный переход на новые версии среди пользователей. Из-за того, что огромное количество пользователей все еще использует устаревшие браузеры, web-разработчикам приходится поддерживать и их, внедряя в свои коды всяческие трюки и так называемые хаки, чтобы один и тот же сайт выглядел одинаково как в браузерах Firefox, Safari и Opera, так и во всех распространенных версиях Internet Explorer.

Однако, с выпуском восьмой версии браузера, Микрософт, похоже, предпринимает попытки сгладить отношение разработчиков к своему детищу, предлагая им долгожданную поддержку стандартов, не оставляя в тоже время поддержку предыдущего кода, написанного под старые версии.
Эта статья призвана показать, что же нового появится в Internet Explorer 8 для разработчиков, что изменится и как использовать некоторые новые и полезные вещи которые предлагает нам этот браузер.

История браузера Internet Explorer для программиста


Выйдя в 1995 году первая версия IE не получила широкого распространения, как впрочем и версия вторая, которая включала в себя поддержку кроме SSL, cookies, такие вещи как VRML и RSA. Третьей версии, которая вышла в 1996 году, удалось добиться большего. Она получила поддержку CSS, ActiveX, фреймов и Java-аплетов. В четвертой версии появились DHTML и PNG. Пятая версия принесла поддержку XML/XSLT, улучшенную поддержку CSS версии 1 и 2, favicon, HTML Application. Особенно полезным окажется введение XMLHttpRequest, который гораздо позднее даст старт повсеместно используемой технологии AJAX. Шестая версия оказалась менее щедрой на нововведения: улучшена поддержка DHTML, частичная поддержка CSS level 1, DOM level 1 и SMIL 2.0. Вместе с тем, шестая версия, похоже, стала самой уязвимой в плане безопасности версией браузера. В седьмой версии Internet Explorer добавилась поддержка IDN, незначительно была улучшена поддержка CSS, DOM и HTML, улучшилась поддержка компрессии страниц через Gzip и deflate. Однако одним из главных исправлений стала долгожданная поддержка прозрачности для PNG-файлов.

Восьмая версия


Первая публичная бета-версия Internet Explorer 8 появилась в марте 2008 года. Сообщалось, что новая версия получит переписанный с нуля движок рендеринга, что команда разработчиков нацелена на поддержку стандартов, таких как CSS 2.1, CSS 3 и HTML 5, что будут исправлены множество ошибок предыдущих версий. И ожидания сбылись, новая версия содержала в себе многочисленные изменения в HTML и CSS, такие как введение тега abbr, поддержка автоматически генерируемого контента CSS, правила CSS display: table, paged media, DOM Storage, XDM, API селектров и многое другое. Кроме того, появилась поддержка Data: URI и XDomainRequest для кросс-доменного обмена, добавились новые функции в DOM, заявлена поддержка спецификации ARIA.
После знакомства с новой версией и ее нововведениями, складывается мнение, что компания Микрософт, наконец-то обратила свое внимание на web-разработчиков и взялась основательно переделать свой браузер к лучшему.

Механика восьмой версии. Прикидываемся седьмой версией


Новая версия рендеринга Internet Explorer может работать в трех режимах:
  • Quirks и Strict – работают как и в IE7, в зависимости от DOCTYPE включается quirks-режим;
  • Standards – основной режим IE 8, в котором максимально широко реализованы стандарты.
Команда разработчиков предусмотрела принудительную поддержку того или иного режима для ваших старых или новых страниц, которые нацелены на отображение в предыдущих версиях браузера и должны нормально отображаться в 8 версии.
Для того чтобы задать необходимый вам режим нужно добавить на страницу meta-тэг следующего содержимого:
<meta http-equiv="X-UA-Compatible" content="IE=8" />

Здесь, content – обозначает режим, в котором будет отображаться страница. Основные значения content следущие:
  • «IE=7» — включает режим Strict в котором рендерятся все страницы;
  • «IE=EmulateIE7» — включает режим совместимости с IE7, в котором в зависимости от DOCTYPE будет применяться либо стандартный для IE7 режим рендеринга (Strict), либо quirks-режим (Quirks);
  • «IE=EmulateIE8» — страница форсируется в режим «IE8 Standards» вне зависимости от того, включен ли режим совместимости «Compatibility View» в браузере пользователя, а quirks-страницы отображаются в Quirks-режиме.
  • «IE=8» — включается режим максимального соответствия стандартам «IE8 Standards».
Кроме того, значения content не ограничиваются перечисленными режимами. Так можно указать значения для любых других браузеров:
<meta http-equiv="X-UA-Compatible" content="FF=3" />

Вдобавок к этому, у параметра content существует значение «edge», которое позволяет указывать на поддержку максимально старшей версии браузера:
<meta http-equiv="X-UA-Compatible" content="IE=edge" />

Кроме указания тега «meta» есть еще один способ управлять режимом браузера – это передача http-заголовка:

X-UA-Compatible: IE=EmulateIE7

Механизмы обеспечения безопасности


Защита памяти средствами DEP/NX


Функция «Включить защиту памяти для снижения риска атаки из интернета» доступна и в седьмой версии браузера, но она не включена по умолчанию. Правда, на 64-битных платформах этой функции нет, но только потому, что все процессы в 64-битных версиях Windows защищены через DEP. Теперь же, данная функция будет включена по умолчанию. Напомню, что DEP/NX позволяет предотвратить выполнение кода, который помечен как данные. Таким образом, отсекается целый пласт атак, таких как переполнение буфера.

Улучшения в ActiveX


В восьмой версии Internet Explorer элементы ActiveX могут быть установлены только для определенного пользователя (Per-User ActiveX), что снижает риск заражения, при учете того, что пользователь не работает под правами администратора. В этом случае под ударом находится только профиль одного пользователя и ничего больше.
Per-Site ActiveX — новая техника, которая позволяет задать элементу ActiveX возможность исполнения только на одном единственном (вашем собственном) сайте и нигде больше. Пользователь также может разрешить использование, скажем Silverlight, только на том сервере, где он первый раз понадобился. Как и все остальное, управление механизмом установки ActiveX будет доступно для администраторов через групповые политики.

XSS-фильтр


Самое интересное, на мой взгляд, нововведение — это встроенный XSS-фильтр, который позволяет защитить пользователя от «Cross-Site Scripting»-атак. Чтобы хотя бы приблизительно оценить величину угрозы от XSS-атак можно перейти по адресу XSSed.com, и посмотреть какие, не самые мелкие публичные ресурсы, подвержены этим атакам. Любой пользователь потенциально может оказаться жертвой, просто перейдя на эти ресурсы, и сейчас число таких обнаруженных «дырявых» сайтов перевалило уже за 20 тысяч.

XSS-фильтр Internet Explorer 8 направлен против xss-атак т.н. типа Type1. Согласно информации с Wikipedia атаки такого типа самые распространенные.

Для тех сайтов, которые по какой-то причине не хотят позволить пользователю включить защиту против XSS на их ресурсах доступна опция в заголовках HTTP:

X-XSS-Protection: 0

Она может понадобиться тем, кто в своих проектах использовал техники схожие с XSS-атаками.

Другие изменения безопасности


  • добавлена новая функция toStaticHTML, которая позволит избежать внедрения опасного кода на страницы путем форматирования html-тегов, эта функция делает тоже, что и функции библиотеки Microsoft Anti-Cross Site Scripting Library;
  • Internet Explorer 8 реализует функции ECMAScript 3.1 для работы с JSON. Для обеспечения безопасности, объект для работы с JSON содержит функцию parse, которая, так же как и toStaticHTML, надежно форматирует потенциально-опасный текст;
  • в новой версии Internet Explorer браузер содержит улучшения в т.н. механизме MIME-sniffing. Этот функционал позволяет определять браузеру содержимое страницы не по «content-type», а по содержанию. Нередко такое определение позволяло внедрить опасный код. Теперь, например, при «content-type: image/*» не будет рендерится вложенный html- или скрипт-код. Для управления фильтром разработчик может воспользоваться новым параметром authoritative и указать «Content-Type: text/plain; authoritative=true;» и в таком случае IE8 не будет пытаться определить тип содержимого, выведя его согласно указанию в «Content-Type»;
  • новые параметры для HTTP-заголовков X-Download-Options: noopen и Content-Disposition: attachment; filename=untrustedfile.html позволяют заставить браузер сохранить содержимое вместо его отображения. Это может понадобиться в тех случаях, когда web-приложению требуется передать пользователю страницу с небезопасным содержимым. В случае сохранения его на клиенте и последующем открытии такие страницы не будут работать в контексте сервера, что оставит его в безопасности;
  • в контроле File Upload теперь в целях безопасности изменили статус поля ввода на read-only. В дополнение к этому, с той же целью, IE8 теперь не будет отправлять полный путь файла, вместо этого отправляться будет только его имя.

Изменения касающиеся CSS


CCS-выражения


Одним из принципиальных решений команды разработчиков Internet Explorer в плане поддержки CSS является отказ от так называемых CCS-выражений (CSS expressions). Эти выражения позволяли интегрировать в CSS-код JavaScript-выражения для манипулирования содержимым css параметров. CSS-выражения в восьмой версии Internet Explorer будет отключены по умолчанию. В числе причин названы безопасность и высокая затратность в плане производительности. Однако поддержка CSS-выражений сохранится в режимах совместимости Strict и Quirks, для поддержки уже написанного кода.

Изменение в именовании свойств


Микрософт изменила порядок именования некоторых свойств CSS. Теперь все «нестандартные свойства» получают префикс "-ms-". Для того, чтобы полностью соответствовать CSS 2.1 в IE 8 такой префикс получили свойства подходящие под следующие условия:
  • если свойство — это расширение Микрософт (не определено в спецификации или модуле CSS);
  • если свойство — часть CSS-спецификации или модуля, которая не получила статус Candidate Recommendation от W3C;
  • если свойство только частично реализовывает свойство, определенное в спецификации CSS.

Вот список свойств, которые получили приставку "-ms-" (с указанием причины):
Property Type W3C Status
-ms-accelerator Extension  
-ms-background-position-x CSS3 Working Draft
-ms-background-position-y CSS3 Working Draft
-ms-behavior Extension  
-ms-block-progression CSS3 Editor's Draft
-ms-filter Extension  
-ms-ime-mode Extension  
-ms-layout-grid CSS3 Editor's Draft
-ms-layout-grid-char CSS3 Editor's Draft
-ms-layout-grid-line CSS3 Editor's Draft
-ms-layout-grid-mode CSS3 Editor's Draft
-ms-layout-grid-type CSS3 Editor's Draft
-ms-line-break CSS3 Working Draft
-ms-line-grid-mode CSS3 Editor's Draft
-ms-interpolation-mode Extension  
-ms-overflow-x CSS3 Working Draft
-ms-overflow-y CSS3 Working Draft
-ms-scrollbar-3dlight-color Extension  
-ms-scrollbar-arrow-color Extension  
-ms-scrollbar-base-color Extension  
-ms-scrollbar-darkshadow-color Extension  
-ms-scrollbar-face-color Extension  
-ms-scrollbar-highlight-color Extension  
-ms-scrollbar-shadow-color Extension  
-ms-scrollbar-track-color Extension  
-ms-text-align-last CSS3 Working Draft
-ms-text-autospace CSS3 Working Draft
-ms-text-justify CSS3 Working Draft
-ms-text-kashida-space CSS3 Working Draft
-ms-text-overflow CSS3 Working Draft
-ms-text-underline-position Extension  
-ms-word-break CSS3 Working Draft
-ms-word-wrap CSS3 Working Draft
-ms-writing-mode CSS3 Editor's Draft
-ms-zoom Extension  


Разработчики понимают, что для многих сайтов придется переводить старые значения на новые, поэтому старые значения, хотя и будут считаться устаревшими, будут поддерживаться в восьмой версии ради совместимости. При разработке же нового кода для IE 8 следует использовать только новые именования.

Свойство filter


Изменения коснулись такого свойства, как filter. Ранее, к сожалению, синтаксис filter не соответствовал CSS 2.1. Например, в указанном коде запятые считались недопустимыми.
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80, FinishOpacity=70, Style=2);

В новой версии браузера синтаксис filter приведен к соответствию требованиям спецификации CSS:
-ms-filter: «progid:DXImageTransform.Microsoft.Alpha(Opacity=80, FinishOpacity=70, Style=2)»;

нетрудно заметить, что в новом синтаксисе значение свойства взято в кавычки.

Поддержка CSS 2.1


Для более полной реализации CSS 2.1 добавлена поддержка следующих псевдо-классов:
  • :active (вместо частичной поддержки, будет полная)
  • :focus
  • :lang©
  • @page :first
  • @page :left
  • @page :right

Последние три не доступны в beta2, но будут добавлены в финальную версию. Кроме того добавлена поддержка следующих псевдо-элементов:
  • :before
  • :after

Следующие элементы будут поддерживаться в полном объеме вместо частичной поддержки либо добавятся:
  • list-style-type
  • background-position
  • font-weight
  • white-space
  • word-spacing
  • content
  • counter-increment
  • counter-reset
  • quotes
  • border-collapse
  • border-spacing
  • border-style
  • caption-side
  • empty-cells
  • bottom
  • display
  • left
  • right
  • top
  • z-index
  • orphans
  • page-break-inside
  • widows
  • outline
  • outline-color
  • outline-style
  • outline-width
  • box-sizing (элемент CSS 3)

Функции CSS


Помимо существующей поддержки функции url(), в восьмой версии будет добавлена поддержка еще двух функций counter() и attr().

JavaScript и AJAX в IE8


В помощь программистам команда разработчиков Internet Explorer внесла значительные изменения и нововведения в механизм JavaScript.

XDomainRequest (XDR)


XDR – это новый объект похожий на XMLHttpRequest, но который предназначен для обмена информацией через домены. Синтаксис XDR соответствует черновику W3C «Access Control for Cross-Site Requests».

Cross-document Messaging (XDM)


XDM – это еще одна технология, которая позволяет обмениваться текстовыми сообщениями фреймам с разных доменов, которые размещены на одной странице. Такой обмен происходит через HTML5-метод postMessage:
var testframe = document.getElementsByTagName('iframe')[0];
testframe.contentWindow.postMessage('Привет!');

Для того, чтобы получить такое сообщение документ во фрейме должен зарегистрировать обработчик сообщения «onmessage»:
document.attachEvent('onmessage',function(e) {

});


DOM Storage


DOM Storage – это механизм, который позволяет хранить на стороне клиента данные не прибегая при этом к механизму cookie. В отличие от cookie, DOM storage лишены целого ряда ограничений: размер сохраняемых данных значительно увеличен, данные DOM storage не отсылаются на сервер при каждом запросе, кроме того можно управлять тем, как сохраненная в DOM storage информация будет видна в других окнах.
В Internet Explorer реализовано три объекта по работе с DOM storage:
  • window.sessionStorage – предназначен для хранения данных на время существования вкладки браузера, данные доступны с разных страниц пока действует контекст вкладки. Данные не восстанавливаются если произошла исключительная ситуация или браузер был закрыт;
  • window.localStorage – предназначен для долговременного хранения данных (около 10 Мб) для каждого домена и субдомена, причем домены и субдомены могут получать данные друг друга, но при этом субдомены не могут получать данные другого субдомена;
  • объект Storage – реализует логику для работы как sessionStorage, так и localStorage, содержит необходимые методы, свойства и события.

Ниже приведен небольшой пример того как можно работать с DOM storage:
localStorage.setItem("name","Владимир");

var name = localStorage.getItem("name");

XMLHttpRequest


XMLHttpRequest получил новое свойство timeout, позволяеющее задавать количество миллисекунд, которое хост будет ждать ответа, после истечения которых произойдет событие ontimeout:
var xhr = new XMLHttpRequest();
xhr.timeout = 10000;
xhr.ontimeout = onTimeout;

function onTimeout ()
{
  alert("timeout!");
}

Новые функции


В JavaScript Internet Explorer 8 также были добавлены несколько функций:
  • ToStaticHTML – форматирует исходную строку так, что заменяет строки с тегами на безопасные строки для предотвращения XSS-атак;
  • toJSON, JSON.parse, JSON.stringify – служат для работы со строкой содержащей json-данные, приводят объект. Синтаксис функции базируется на ECMAScript 3.1.


Инструмент Developer Tools. Profiler JavaScript.


В восьмой версии Internet Explorer к радости программистов добавлен инструмент, который способен побороться с широко распространенным дополнением Firebug для браузера Firefox. Этот инструмент называется просто Developer Tools и представляет собой следующую панель:

Панель содержит следующие инструменты и функции:
  • инспекция html-кода страниц;
  • просмотр и редактирование применяемых стилей;
  • выделение элемента по наведению курсора мыши;
  • встроенный мощный отладчик JavaScript-кода;
  • блокировка скриптов, css, всплывающих окон;
  • вывод на отображаемую страницу информации о Id и классе элементов, ссылках;
  • подсветку элементов по типу, по позиционированию и по другим параметрам;
  • управление изображениями на странице, просмотр информации;
  • встроенную динамическую линейку;
  • встроенный color picker;
  • ссылки на валидацию.

Кроме того, эта панель содержит замечательный функционал – профайлер JavaScript кода:

Этот инструмент позволяет легко отследить узкие места в вашем JavaScript-коде и тем самым повысить производительность сайта и скорость загрузки страниц.

Заключение


В этой статье я попытался рассмотреть новые возможности Internet Explorer, которые он предоставляет программисту. Как оказалось, новая версия браузера несет в себе массу изменений, улучшений, исправлений и добавлений для разработчиков web-проектов. На момент написания статьи последней версией Internet Explorer 8 оставалась beta2, но уже по ней заметно, что компания Микрософт уделила своему браузеру самое пристальное внимание и значительно усовершенствовала его. Для разработчиков важно быть в курсе тенденций в web. Разработка новой версии популярного браузера – это одна из таких тенденций. Надеюсь, что приведенный материал помог разработчикам пополнить свои знания и быть в курсе некоторых новых возможностей, которые предложит финальная версия Internet Explorer 8.
_________
Текст подготовлен в ХабраРедакторе
+103
13 января 2009, 07:51
92

комментарии (132)

+7
Nurked #
Ой, порадовал статьёй, спасибо 8-)
Наконец-то полное описание, без рюшечек, и поросячьего визга 8-)
–52
ahat #
В IE8 есть встроеный даунлодер? (в смысле нормальный загрузчик)
Кликом правой кнопки можно заблокировать банеры?
Можно ли использовать свой шаблон стилей для какой нить странички?
если нет, то о каких нововведениях идет речь? Закрывание дырок открытых в ранних версиях?
+11
xolvo #
от куда вы все беретесь…
–21
ahat #
из интернета
НЛО прилетело и опубликовало эту надпись здесь
+1
vorbiz #
trollim.ru ---->
+3
Yeah #
Читай название статьи. Там есть фраза «для программиста». Все, приведенные тобой недостатки никоим образом не мешают программисту.
–14
ahat #
IE8 браузер для програмистов?
0
int80h #
ну вообшем-то да :) я, к примеру, отношусь к нему не как к браузеру, а как к набору интерфейсов и разных библиотек:
msdn.microsoft.com/en-us/library/aa155133.aspx
msdn.microsoft.com/en-us/library/aa741322(VS.85).aspx

ну знаете, быстро там отрендрить в моем приложении кусочек html-кода, сделать визуальный WYSIWYG редактор, интерфейс раньше было удобно на нем клепать, никто даже заподозрить не мог, что это html и т.д.
–2
shiko_1st #
«Клепать» и «лабать» — самые точные определения к такому подходу
0
int80h #
И, кстати, поскольку IE очень уж дружелюбен для программистов, все те вещи о которых вы написали выше, легко делаются в течении одного рабочего дня. И менеджер закачки свой можно встроить, и стили подменять, и банеры резать. Система «плагинов» развита как нигде в другом месте.
+1
XaocCPS #
сейчас вас запинают любители firefox, поскольку для ff аддонов (не плагинов) на несколько порядков больше, как ни крути, а ведь они делают именно то что и плагины в ie
0
int80h #
Ну, это естественное явление (я про количество аддонов) :) просто «уровень вхождения» в разработку под IE существенно выше, чем в разработку аддонов под FF, но в целом, IE предоставляет больше возможностей, как ни крути.
–3
ahat #
если это все делается в течении одного рабочего дня, то почему у юзверей до сих пор нет нормального браузера, и им приходится открывать IE только лишь для того что бы скачать оперу или файрфокс?
+2
int80h #
Как нет, а как же древнейший Maxthon, к примеру? ) И менеджер закачек удобный, и рекламу вырезает, и задолго до IE7 научился показывать окна в вкладках, и скины имеет, и даже как Google Chrome не умирает, если у вас зависает одна из страничек.

и не нужно говорить не правду, якобы никто не пользуется IE.
+3
lifestar #
Я не зверь и пользуюсь IE
+2
Bahusss #
IE — Это браузер, почитайте определение браузера в педивикии хотя бы. То что вы описываете называется комбайном.
–7
ahat #
то что я описал назвается Opera или FF
а то что делает MS назвается заглушка.

так как коментировать могу не чаще чем раз в 5 минут. то на пост lifestar отвечаю тутже
— попробуйте Оперу или ФФ, Вам понравится. через минут 10 у вас начнется отвыкание от IE а еще через 10 вы окончательно забудете IE.

int80h — ну почему же вот например lifestar пользуется. но тренды говорят что скоро Вас станет меньше.
+4
Bahusss #
Вы ставили FF? Где там из коробки даунлоад менеджер, блокировшик баннеров и возможность подцепить свой CSS?
0
int80h #
как почему — вы так написали :)

и кого это «Вас»? я вообще пользователь мака и Safari :)
0
aps #
www.w3schools.com/browsers/browsers_stats.asp
По приведенной ссылке можно убедиться что боьшинство посетителей сайта W3C — пользователи MSIE. И можно предположить что этот сайт посещают исключительно web-разработчики.
0
ahat #
ага, а большинство посетителей хабра пользователи ФФ
0
aps #
Ну да конечно. Здесь для многих карма Хабра важнее, валидатора w3c
+1
VolCh #
А где он есть (нормальный загрузчик)? В смысле в каком браузере? Ну, как минимум, чтобы позволял ограничивать скорость закачки
+1
onthefly #
Для Лисы был какой-то даунлоадер, правда сам не щупал. Но сомневаюсь, что там можно квотировать полосу пропускания или выставлять какие-то приоритеты.
0
VolCh #
Я щупал, во второй у меня стоял, потом все равно на внешний через flashgot перешел Приоритеты для очереди можно было ставить, если ничего не путаю :)
+1
Gospodin #
Есть такой замечательный плагин под IE, IE7 pro, который существенно расширяет функционал IE, в свое время поставил его из-за наличия в нем жестов мышью как в Опере, но помимо всего прочего имеет менеджер закачек, поддерживает UserJS аля GreaseMonkey и еще умеет кучу всего, к тому же работает и в IE8.
0
XaocCPS #
* режет баннеры
0
no_smoking #
Да класная штука, сейчас попробовал и в совокупности с ie8 все что надо есть.
0
Dart #
грузил и как знал, что без троллей не обойдется…
+3
web4_0 #
Скорей бы IE6 умер, скорей бы… :)
В 8-й версии напрягает слишком долгий вывод html-кода страницы, ну и дебаггер на «тяжёлых» страницах тормозит тоже не по-детски
0
XaocCPS #
щупали IE8 под win7? ощутимые изменения, особенно в developer tool
+4
web4_0 #
Я лучше девушек пощупаю, а в случае IE8, подожду выхода финальной версии
–2
VolCh #
Да пускай живет, но только полную поддержку заголовка «X-UA-Compatible: IE=IE8» пускай сделают :)
–2
chuwy #
Да хоть IE=IE10. Только толку от этого никакого.
0
onthefly #
meta http-equiv=«X-UA-Compatible» content=«FF=3»
После прочтения остался вопрос относительно этого. Проясните пожалуйста, поддерживает ли Фаерфокс этот метатег.
+3
XaocCPS #
нет конечно :) но тег допускает такую реализацию со стороны Mozilla, если она того захочет
думаю, глупо было бы делать тег без возможности поддержки его другими браузерами
0
onthefly #
А зачем FF его поддерживать? Имхо этот костыль нужен только самим MS
+1
XaocCPS #
согласен, потребность есть только у ie
НЛО прилетело и опубликовало эту надпись здесь
0
onthefly #
Продолжите, пожалуйста, вашу мысль, я не до конца уловил смысл. Тот факт, что для FF есть специфичные свойства, не требует объявления поддерживаемой версии браузера. Прочие браузеры будут эти свойства игнорировать, а Лиса интерпретирует их должным образом. Для чего метатег?
0
no_smoking #
Хтябы для того чтобы определить какой в будущем -moz-border-radius или border-radius, допустим с выходом стандартов там будет другое поведение.
0
onthefly #
Вот и пришли к тому за что ругали в своё время MS
НЛО прилетело и опубликовало эту надпись здесь
0
onthefly #
О  CSS3 я ниже высказывался, нет в этом нужды
НЛО прилетело и опубликовало эту надпись здесь
0
onthefly #
Я верю, что к наспуплению времён будничного использования CSS3 мы увидим четвёртую, а то и пятую версию FF. Вторая версия будет вопиющим анахронизмом.
НЛО прилетело и опубликовало эту надпись здесь
0
onthefly #
Седьмой останется :) А шестой и сейчас анахронизм. Пусть и не вопиюший
НЛО прилетело и опубликовало эту надпись здесь
0
onthefly #
Полностью согласен
0
VolCh #
Хм… а как это должно выглядеть, если и тот и другой браузер «поддерживаются» кодом? Через запятую, два заголовка подряд или как? Сам IE в какой комбинации ожидает IE= и FF=?
0
XaocCPS #
допускается такой синтаксис
/>
+1
XaocCPS #
* meta http-equiv=«X-UA-Compatible» content=«IE=8;FF=3;OtherUA=4»
+1
Zoberg #
Мне показалось, что FF=3 означает, что ИЕ будет вести себя как фаерфокс 3 и код, написанный под фф, будет работать под ИЕ. Я рано обрадовался?(
0
XaocCPS #
рано :)
НЛО прилетело и опубликовало эту надпись здесь
0
XaocCPS #
если не учитывать множественные визуальные CSS3-свойства которые уже есть в FF, но пока не светят в IE
НЛО прилетело и опубликовало эту надпись здесь
0
XaocCPS #
opacity — это CSS3-свойство, наверное, из-за этого до сих пор не включена полная поддержка
0
XaocCPS #
кстати, думаю, такой метатег может найти и другие применения для разработчиков
этим тегом они могут помечать целевую платформу и клиентские расширения (те же плагины для FF) смогут как-то особенно реагировать на него

к примеру
+1
onthefly #
Если плагин уже запущен, ему по идее до фени, что за метатеги в коде прописаны :)

В отношении Лисы, как мне кажется, нет необходимости указывать в метатегах совместимые версии. Даже когда широко распространится CSS3 и первая версия FF уже не будет адекватно отображать страницы — проблемы как таковой не будет. Пользователи этого браузера привыкли к своевременным обновлениям и устаревшая версия скорее всего использоваться уже не будет.
0
XaocCPS #
да, согласен, пользователи FF (в больше части) по умолчанию получают метатег
/>

:)
0
XaocCPS #
* meta http-equiv=«X-UA-Compatible» content=«FF=edge»
0
VolCh #
Кстати, а как IE сейчас реагирует на <?xml version=«1.0» encoding=«utf-8»>? Или это уже давно пофиксили?
НЛО прилетело и опубликовало эту надпись здесь
–3
Nuty #
Да, в этой версии костылей гораздо больше…
+4
sotakone #
Правильно писать cookies, а не coockies.
+2
sotakone #
Алсо, статья отличная. Спасибо за публикацию.
+1
sotakone #
Блин, и где я у вас эту опечатку увидел? Прошу прощения, видимо ложная тревога :)
+2
XaocCPS #
это я только что поправил, спасибо
+1
1amer #
Developer Tools есть и для осла 7(Developer Toolbar) хотя его и приходится скачивать отдельно с сайта мелкософта, а ещё там нет дебагера и профайлера.
–1
homm #
> старые значения, хотя и будут считаться устаревшими,
> будут поддерживаться в восьмой версии ради совместимости.
> При разработке же нового кода для IE 8 следует использовать только новые именования.

Когда МС поймут, что код пишется не под новую версию ИЕ, а для веба. Вместо того, чтобы нормально расширить возможности своего браузера, они дают нам вбыор, делать под старый ИЕ с глюками или под новый без глюков, но зато старые браузеры такое врятли откроют. Почемуто когда выходит новая версия Оперы или ФФ, максимум что приходится делать — подправить верстку под новые глюки, если такие имеются. А с выходом каждой версии ИЕ меньше чем на полную ревизию кода надеяться не выходит.
+2
XaocCPS #
8 версия старается приближаться к стандартам, все нестандартное убрано под -ms. Это в том числе сделано для того, чтобы в 9 версии было уже легче и безпроблемнее. Вы же за стандарты? Если 8 будет соблюдать стандарты то вы запишите это в плюс или минус?

и кстати, мне кажется, 8 версия в чем-то первая версия
+1
kip #
Сдаётся мне, что с 9-й будет ещё интереснее ;-)
+2
homm #
Да я мозгом то понимаю что это шаг в правильном напрвлении, что потом в будующих версиях, когда ИЕ6 и ИЕ7 уйдук как страшный сон мы все спасибо скажем, просто пока они не ушли это мягко говоря не очень удобный компромисс.
0
no_smoking #
Будем надеяться на то что w7 быстро распространить ie8 в массы :)
0
CAH4A #
IE7 — милый пушной зверёк, по сравнению с дырами, багами, и прочим мозгоутомлением в IE6.
0
karamba #
Направление, в котором движется компания именно в этих продуктах (IE8 И Windows7) очень нравится. Действительно есть ощущение «новой волны».
0
VolCh #
>А с выходом каждой версии ИЕ меньше чем на полную ревизию кода надеяться не выходит.

Вот вам как раз и дают возможность не делать срочную полную ревизию кода, скажем до того времени, пока доля IE 6 не станет пренебрежимо мала. Добавили один хидер или метатег и все, забыли про то, что есть IE8 с новым рендерингом. Потом не спеша подправили код, если необходимо (а может и для лисы вариант будет нормально отображаться), заменили хидер и всё.
0
Dark_MX #
Извините но сразу в глаза попало. «премлемом» У меня плохо с правописанием но кажется написано то неверно.

За материал спасибо. Сохранил, позже ознакомлюсь ;)
0
hiway #
Очень качественная статья. Спасибо.
0
catsmeetman #
Качественная но первые 5 абзацев смело можно было не писать.
0
XaocCPS #
это статья предназначалась для журнала, для Хабра, пожалуй, я бы их не написал :)
0
hiway #
Думаю, что они написаны потому, что статья изначально готовилось то не для Хабра, а для более широкого круга читателей, менее искушенного. Ссори, не прочитал авторский коммент ниже.
0
izzik #
осталась одна маленькая проблемка, какже заставить всех кто сидит на ie6 обновиться хотябы до 7…
0
XaocCPS #
для этого MS тоже прилагает усилия, например, обновление до 8 версии будет критическим по всем каналам: Windows Update, Microsoft Update, Automatic Update. Если обновление не отключать, то ie8 придет к вам сам. Достучаться до тех, у кого нет привычки обновляться лично мне кажется затруднительным.
0
izzik #
какая привычка??) большая часть этих людей до сих пор сидит на XP SP1 и их компьютерщик отключил им обновление потому что винда там ломанная… сам видел… те у кого виндоус лицензионный тем не будет трудо обновиться, а как же тот самый большой процент с пираткой?? ( я имею ввиду тех кто не будет искать серийники и тд и тп)
0
XaocCPS #
мы же не будем обсуждать «ломаные» винды? :)
кроме того, нормальный администратор самостоятельно может сделать автоматическое обновление до ie8, это обновление не требует подтверждение активации
0
TiGR #
Пусть MS напишет вирус, ломающий старые версии винды со старыми браузерами и включающий им обновление, или хотя бы качающий ie8 :)

Я даже не буду возмущаться по поводу того, что «MS всякую заразу пишет» :)
0
leomac #
Сижу на ломаной XP, прекрасно обновляется.
+1
MOVe #
Всё делается гораздо проще. Просто большинству серьёзных сайтов нужно перестать поддерживать IE6. Реакция будет довольно предсказуемой — если не работает большинство сайтов в браузере, значит нужно либо качать новую версию, либо ставить другой. А то, что кто-то боится потерять пользователей — так это посредственные сайты, видимо.

Вот что делать с корпоративными браузерами, под которых написана куча ActiveX и по этой причине их не обновляют на предприятиях, не знаю. Скорее всего тем пользователям нужно будет работать, а не на сайтах сидеть :) Но массово, думаю, обновляться начнут только тогда, когда перестанет что-то работать.
0
karamba #
Действительно, «гораздо проще» :))))
0
izzik #
вы предлагаете яндексу, майлу и корпорации зла поставить запрет на ie6? :-) честно мне такой кошмар снился, как я стаю перед директорами яндекса и объясняю им что надо закрыть доступ для ie6 :-)
0
crwin #
сейчас всё больше используют js на новых проектах, и даже использование фреймфорков не спасает ситуация для ие6, если скриптов просто много, во всяком случае спад пошёл, это не может не радовать.
0
MOVe #
Когда у геймера не идёт новая «классная игрушка» он идёт апгрейтиться. Я не предлагаю разработчикам убеждать начальство в том, что нужно взять и запретить… Это бесполезно. Но один из выходов — это перестать поддерживать. Тогда старым браузером не будет смысла пользоваться.
Почему никто не использует IE 3-4? :) Наверное потому, что он безнадёжно устарел и не отображает ни один сайт нормально. Люди просто не видят смысла менять то, что и так нормально работает.
0
XaocCPS #
3-4 версией IE не пользуются потому, что ОС, с которыми они поставлялись уже не используются
а XP продается до сих пор (с IE6) и многие хотят чтобы он продолжал продаваться
0
MOVe #
Ну, это понятно.

А у меня не установилась бета IE8 :( Обидно. Даже не пощупать…
0
TiGR #
Насколько я понимаю, легально сейчас продаётся только XP SP3, а она с IE7.
0
XaocCPS #
может быть это касается коробочных копий
к примеру всего 4 месяца назад я купил в магазине новый нетбук MSI Wind на котором стоял XP SP2 c IE6
хотя, готов поверить что мне просто не повезло :)
НЛО прилетело и опубликовало эту надпись здесь
+2
XaocCPS #
я с вами согласен, ie6 нужно перестать поддерживать
я уже предлагал создать инициативу stopIE6
0
TiGR #
Так ведь уже было: habrahabr.ru/blogs/webdev/17569/
0
VolCh #
Причем первым из серьезных сайтов должен быть microsoft.com сотоварищи :) Активно пользуюсь шестеркой по назначению (как браузером, а не как инструментом разработки) только на них
0
hiway #
Буквально вчера бурно обсуждали этот вопрос. Вывод один, Microsoft не хочет переводить пользователей старой винды, ранних версий, но новые браузеры, без перехода на новые версии Windows.
0
XaocCPS #
глупости, обновление на 8 версию будет критическим для всех поддерживаемых версий Windows: XP, 2003,2008,Vista
+1
hiway #
В принципе да, но к сожалению есть люди которые «кладут» на апгрейд. Но это уже их проблемы. И думаю, что в большинстве своем, люди которые не апгрейдятся используют пиратские версии винды.
0
VolCh #
А зачем нужно кого-то заставлять? Для вашего (нашего, веб-разработчиков) удобства?

Знаю людей, которые органично не воспринимают ни IE7, ни конкурентов, нравится им (читай привыкли за много лет) IE6 и менять (читай отказываться от старых привычек и обзаводится новыми) не хотят. Я и сам предпочитаю на XP IE7 не ставить — там где нужен «браузер от MS» пользуюсь шестеркой, привычна, поведение ожидаемо и т. п., а IE 7 только для проверки функционирования своих разработок в нем — дефолтный интерфейс не нравится, а разбираться как его настроить (и можно ли) или «а-ля IE6», или «а-ля FF3» (то есть чтоб интерфейс был привычным для меня) желания нет. Как, кстати, и в настройках интерфейса Оперы нет желания разбираться, может и можно из него сделать почти полный аналог «моей сборки» FF3, но зачем, если запускаю IE6, IE7 и Opera 9.x (а также Safari а теперь еще и Chome) перед деплойментом, проверяю рендеринг, правлю шаблоны при необходимости и всё. Серверную логику предпочитаю тестить и отлаживать в FF3
0
ZakharS #
Спасибо за статью! XaocCPS, а поддержки Canvas у него по прежнему нет? Я слышал только про эмуляцию через Silverlight. Очень хотелось бы попробовать Canvas, но отсутствие поддержки в (пока) доминирующем браузере останавливает.
0
XaocCPS #
нету, это элемент html5, который слабо поддерживается в ie8
0
ZakharS #
Хмм… «Сообщалось, что новая версия получит переписанный с нуля движок рендеринга, что команда разработчиков нацелена на поддержку стандартов, таких как CSS 2.1, CSS 3 и HTML 5… И ожидания сбылись...»
То есть не совсем :) Обидно.
0
XaocCPS #
кончено не совсем, html5 еще не готов, чтобы можно было вообще оценить это «все»
но к примеру dom storage будет включен (это часть html5)
0
slavan #
Пробывал IE8, но Opera 9.2 мне больше нравится.
0
no_smoking #
Рад за тебя :)
0
gearss #
Давно ждал Firebug для IE.
Но, с первого взгляда на скриншоты видно, что накосячили.

Например, посмотрите на HTML закладку Developer Tools. В правой панели наследуемые стили CSS, причём, как видно из скриншота, в порядке наследования DOM — сначала тэг body, далее div, видимо, где-то в хвосте искомый select.
Порядок следования просто необходимо изменить на обратный. Иначе придётся скроллить каждый раз.

Из таких мелочей складывается впечатление о продукте. Чтобы им (Developer Tools) удобно было пользоваться, необходимо позаботиться о деталях.
К слову, девелоперская консоль в Google Chrome тоже крайне неудобна во многих отношениях.

Firebug до сих пор остаётся незаменимым инструментом в web-разработке, для тех кто занимается этим серьёзно.
0
XaocCPS #
это скриншот beta2
я погляжу дома в win7 может быть там порядок изменен, если что — отпишу
0
crwin #
и до сих пор нет полноценной поддержки xhtml с правильным миме?
0
0range #
хех терь осталось придумать как заставить пользователей ие, обновится до 8 версии после ее выхода :)
иначе буим еще года 3 — 4 поддерживать ие6 и лет 5 — 7 ие7 :/

за полноценный обзор спасибо
0
XaocCPS #
про «заставить» чуть выше написано
0
TiGR #
0
dshster #
Отлично! Надо будет запомнить всё это, когда начнём программить под него!
0
Dart #
в избранное ;-)
0
BANDiT600 #
Вообще IE стал намного лучше, перестал падать, вываливаться, зависать (нужное подчеркнуть), а стал очень стабильно работать. Уже месяца с лишним работаю в нем и очень доволен. Особенно нововведениями.
0
Princess #
Во-первых, автору большое спасибо за статью, как раз хотела почитать именно такой подробный и грамотный обзор.
Во-вторых, хочется надеяться, что ИЕ8 оправдает ожидания. Все-таки у этого браузера репутация так подмочена, что разработчикам нужно очень сильно постараться, чтобы реабилитировать ее в глазах пользователей.
0
XaocCPS #
главное не ждать слишком многого
0
mester #
а что известно насчёт такой особенности как <![if IE 8]>?
она работает в 8ке?
0
XaocCPS #
0
TiGR #
Очень интересно, будет ли поддержка userscripts? Они кажется уже поддерживаются всеми браузерами, было бы круто, если бы оно было и в IE.

И планируется ли какой-то резак рекламы?
0
no_smoking #
Вот посмотрите на это ie7pro.com/
0
Kano #
А где информация по микроформатом и webslice?
0
coyl #
они там в плане векторной графики по-прежнему не предлагают ничего лучше чем использовать VML в режиме совместимости с семеркой?
НЛО прилетело и опубликовало эту надпись здесь

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.