Web Desin For You

It´s not to imposible!

  • Лента новостей (RSS)
  • Главная
  • Форум
  • Photoshop Online
Главная » 2010 » Август » 5 » Совместимость сайтов с IE8

Совместимость сайтов с IE8

Добавлено 21:10 - ADMIN

Совместимость сайтов с IE8

В блоге команды Internet Explorer1 недавно опубликован список основных проблем совместимости существующих сайтов с IE8.

Разница между IE8 в режиме совместимости и IE7

Кросс-документные связи

Отключены хаки, которые использовались для кросс-доменных и кросс-документных связей.

РЕШЕНИЕ: Используйте Cross Document Messaging (XDM)2.

Расширение объекта события

В IE8 у объекта события есть свойства, связанные с новыми возможностями, например, source для Cross Document Messaging (XDM)2, некоторые из них доступны и в режиме совместимости, это может привести к конфликту с пользовательскими свойствами объекта события.

event.source = myObject;  // Только для чтения IE8

РЕШЕНИЕ: Измените имя конфликтующего свойства.

event.mySource = myObject;

Порядок атрибутов

Порядок атрибутов в коллекции атрибутов и свойствах innerHTML и outerHTML изменен.

attr = elm.attributes[1];  // может отличаться в IE8

РЕШЕНИЕ: Ссылайтесь на атрибуты по имени.

attr = elm.attributes["id"];

Присваивание не поддерживаемых значений CSS свойств

Присваивание значений не поддерживающихся в IE7, но поддерживающихся в стандартном режиме IE8 не приводит к исключению в режиме совместимости. Некоторые сайты используют эти исключения, чтобы определить поддерживается ли соответствующее значение CSS свойства или нет.

try {
    elm
.style.display = "table-cell";
} catch(e) {
   
// выполняется в IE7, но не в IE8,
   
// независимо от режима
}

РЕШЕНИЕ: У этой проблемы нет простого решения (за исключением определения версии браузера). Лучшее что можно сделать это обновить страницу для работы в стандартном режиме IE8.

Разница между стандартным режимом и режимом совместимости IE8

Большинство проблем связано с отсутствием старых ошибок в стандартном режиме IE8. Обновление сайта для работы в стандартном режиме IE8 лучшее решение в долгосрочной перспективе, но если нужно быстрое решение проблем то можно использовать режим совместимости4.

В стандартном режиме кроме вышеупомянутых проблем, можно столкнуться со следующими:

Определение версии браузера

Неверное определение версии браузера часто приводит некорректной работе страницы. Особенно это касается условных комментариев, на многих страницах они используются для исправления ошибок, которых больше нет в IE8.

<!--[if IE]>
    <link rel="stylesheet" type="text/css" src="ie.css" />
<![endif]-->

РЕШЕНИЕ: Обновите части кода зависящие от версии браузера. По возможности, используйте проверку наличия объектов.

<!--[if lte IE 7]>
    <link rel="stylesheet" type="text/css" src="ie.css" />
<![endif]-->

Проверка наличия объектов

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

if(window.postMessage) {
    window
.addEventListener("load", myHandler, false);
}

РЕШЕНИЕ: Проверяйте наличие непосредственно используемого объекта.

if(window.addEventListener) {
    window
.addEventListener("load", myHandler, false);
}

Ошибки в HTML

Коррекция ошибок в стандартном режиме IE8 отличается от коррекции ошибок в IE7.

<ul>
   
<li>1.1
       
<ul>
           
<li>1.1.1</li>
   
</li>
   
<!-- Закрывает 1.1 в IE8, но не в IE7 -->
           
<li>1.1.2</li>
       
</ul>
   
</li>
</ul>

РЕШЕНИЕ: Разметка не должна содержать ошибок.

<ul>
   
<li>1.1
       
<ul>
           
<li>1.1.1</li>
   
<!-- </li> -->
           
<li>1.1.2</li>
       
</ul>
   
</li>
</ul>

Работа с классом элемента

В IE7, для работы с классом элемента использовалось имя атрибута className. В стандартном режиме IE8 это исправлено. Использование старого имени создаст атрибут className и никак не повлияет на класс элемента.

return elm.getAttribute("className");

РЕШЕНИЕ: Используйте стандартное имя class.

return elm.getAttribute("class");

GetElementById5

Метод getElementById теперь чувствителен к регистру и не ищет по атрибуту name.

<div id="Test"></div>
<script type="text/javascript">
   
// Из за разницы в регистре элемент не найден
   
var test = document.getElementById("test")
</script>

РЕШЕНИЕ: Следите за регистром и используйте getElementsByName для поиска по атрибуту name.

<div id="Test"></div>
<script type="text/javascript">
   
// Элемент Test найден
   
var test = document.getElementById("Test")
</script>

Generic CSS Prefix Selectors

Не поддерживаются в стандартном режиме IE8. В первую очередь это коснется страниц использующих VML. Использование такого селектора в скрипте приведет к ошибке, а в CSS к неверному отображению страницы.

v:* {
    behavior
: url(#default#VML);
}

РЕШЕНИЕ: Перечислите все нужные теги.

v:polyline, v:line {
    behavior
: url(#default#VML);
}

CSS Expressions6

IE8 не поддерживает CSS Expressions в стандартном режиме7.

/* CSS */
#main {
    background
-color:
        expression
((new Date()).getHours()%2 ? "#000" : "#fff");
}

РЕШЕНИЕ: Используйте улучшенную поддержку CSS или JavaScript.

/* Script */
var elm = document.getElementById("main");

if((new Date()).getHours()%2) {
    elm
.style.backgroundColor = "#000";
} else {
    elm
.style.backgroundColor = "#fff";
}

Нативный JSON8

IE8 нативно поддерживает JSON, совместимый с ES3.1 Proposal Working Draft9... Некоторые страницы определяют наличине нативного JSON, и используют его нестандартным образом.

if(!window.JSON) {
    JSON
= myJSON;
}

JSON
.encode(obj); // Не соответствует стандарту

РЕШЕНИЕ: Модифицируйте код, чтобы он соответствовал стандартам, или не используйте нативный JSON.

JSON = myJSON;
JSON
.encode(obj);

Начальные значения CSS свойств

Не установленные свойства объекта currentStyle теперь возвращают их значения по умолчанию.
Это основная причина проблем с контролом меню в ASP.NET.10

var zIndex = elm.currentStyle.zIndex;
if(zIndex == 0) {
   
// код
}

РЕШЕНИЕ: Проверяйте и старое, и новое (соответветствующее стандартам) значение по умолчанию.

var zIndex = elm.currentStyle.zIndex;
if(zIndex == 0 || zIndex == "auto") {
   
// код
}

Не установленные значения CSS свойств

Не установленные свойства объекта style теперь возврящают пустую строку (в соответствии со стандартом).

var zIndex = elm.style.zIndex;
if(zIndex === 0) {
   
// код
}

РЕШЕНИЕ: Проверяйте и старое значение, и пустую строку.

var zIndex = elm.style.zIndex;
if(zIndex === 0 || zIndex === "") {
   
// код
}

Коллекция атрибутов

Коллекция атрибутов теперь содержит только те атрибуты которые явно установлены, а не все атрибуты распознаваемые IE.

var attr = elm.attributes["checked"];
// Потенциальная ошибка в IE8
return attr.specified;

РЕШЕНИЕ: Проверяйте наличие атрибута в коллекции.

var attr = elm.attributes["checked"];

if(attr) {
   
return attr.specified;
} else {
   
return false;
}

Ссылки

  1. http://blogs.msdn.com/ie/default.aspx
  2. http://msdn.microsoft.com/en-us/library/cc197057(VS.85).aspx
  3. http://blogs.msdn.com/ie/archive/2008/06/10/introducing-ie-emulateie7.aspx
  4. http://msdn.microsoft.com/en-us/library/ms536437.aspx
  5. http://msdn.microsoft.com/en-us/library/ms537634.aspx
  6. http://blogs.msdn.com/ie/archive/2008/10/16/ending-expressions.aspx
  7. http://blogs.msdn.com/ie/archive/2008/09/10/native-json-in-ie8.aspx
  8. http://wiki.ecmascript.org/doku.php?id=es3.1:es3.1_proposal_working_draft
  9. http://blogs.msdn.com/giorgio/archive/2009/02/01/asp-net-menu-and-ie8-rendering-white-issue.aspx
    • 1
    • 2
    • 3
    • 4
    • 5
    Просмотров: 6436 | | Рейтинг: 0.0/0
    Теги: IE7, javascript
Всего комментариев: 8
8 JesusIncew   (23.12.2024 21:07)
0
БОЛЕЕ 12 ЛЕТ МОНОЛИТНОГО СТРОИТЕЛЬСТВА ДОМОВ В СОЧИ
Мы являемся ведущей компанией в сфере строительства домов. Наша команда экспертов предлагает широкий спектр услуг, включая проектирование, строительство и реализацию качественных и надежных коттеджей. Мы гордимся своей многолетней историей успешных проектов, индивидуальным подходом к каждому клиенту и стремлением к постоянному совершенствованию. Наша миссия — помочь создать вашу мечту о доме, который будет идеально соответствовать вашим потребностям, стилю и бюджету. Доверьтесь нам и воплотите свои домашние мечты в реальность!

https://inzgeoservis.ru/ - строительство частных домов в сочи

7 Sownxuy   (08.05.2024 01:15)
0
Поддерживать отлично работу и производить в толпу!
взгляните также эту страничку и дайте ей оценку

http://bestone-korea.com/bbs/board.php?bo_table=qa&wr_id=1254 брауни кекс
https://www.yoonjobooks.co.kr/yoonjo/bbs/board.php?bo_table=free&wr_id=251864 дерматолог софия акне
http://damoa8949.com/bbs/board.php?bo_table=free&wr_id=15870 перални аег за вграждане aeg
https://bryggargillet.nordmark.org/index.php/User:LelandCuster почивка в римини last minute

=0090=0=

6 NicholasSop   (02.02.2024 18:43)
0
Undeniably believe that which you stated. Your favorite reason appeared to be on the net the simplest thing to be aware of. I say to you, I definitely get irked while people think about worries that they plainly don't know about. You managed to hit the nail upon the top as well as defined out the whole thing without having side effect , people can take a signal. Will likely be back to get more. Thanks
That’s where Happn comes Per. If you have crossed paths with another user, they’ll show up at the apice of your Happn page. If you like what you see, you can send a heart and, if they send one back, instigate a conversation.} Non ci sono altre dating un mistero

@eerwq

5 posylka-iz-kitayasinaeteds   (01.02.2017 16:38)
0
- https://www.youtube.com/channel/UC0A5GsvI1buxwQQjBgh_elw - Посылка из китая

4 KennethFal   (24.01.2017 11:58)
0
как сдавать мазок на вирус папилломы как сдавать http://amazukra.us/index.php?link=1111 этиология гепатит д
g6687hjhk7

3 hey everyone   (27.04.2013 21:12)
0
just dropping by to say hello
http://www.youtube.com/watch?v=fCi2eX0hvHE - free microsoft points codes

2 hey everyone   (27.03.2013 14:08)
0
just stopping by to say hi
http://www.youtube.com/watch?v=fCi2eX0hvHE - this link

1 BavaArgueva   (13.11.2011 14:57)
0
meiby http://rxprescriptiondrugstorepharmacy.net/

Имя *:
Email *:
Код *:

Меню сайта

    • Главная страница
    • Информация о сайте
    • Форум
    • Генератор иконок
Гость

Сообщения:

Группа:
Гости
Время:21:14

Гость, мы рады вас видеть. Пожалуйста зарегистрируйтесь или авторизуйтесь!

Поиск

Календарь

    «  Август 2010  »
    Пн Вт Ср Чт Пт Сб Вс
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031

Архив записей

    • 2010 Август

Наш опрос

    Оцените мой сайт
    Результаты | Архив опросов
    Всего ответов: 2

Друзья сайта

Статистика


    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0

© Web desing For You 2010
Designed by: Web Desin For You Бесплатный конструктор сайтов — uCoz