2008-09-30 2 views
3

Каковы наиболее распространенные проблемы совместимости браузеров в основных браузерах на рабочем столе?Типичные ошибки кроссбраузерной совместимости

Нет, пожалуйста, удалите об этом. Проблемы с голосованием, с которыми вы столкнулись. Я надеюсь, что список будет сортировать самостоятельно. «IE sux» - это не ловушка, а призыв к понижению голосов.

[Изменить] Да, я знаю, что это опрос - я не отправляю ответы на это, чтобы собрать очки - мне действительно интересно узнать, что люди обычно сталкиваются.

+0

Я считаю, что с приходом нового Javascript, такие как JQuery, эта проблема больше не является большим фактором. – 2008-09-30 17:42:13

+0

Gulzar - Я бы согласился с аспектом JavaScript вопроса, но не с частью HTML, CSS. – Hafthor 2008-09-30 17:44:36

+0

Halftor: Я бы посоветовал вам переформулировать ваш вопрос таким, чтобы отвечать на один ответ. – 2008-09-30 17:56:34

ответ

1

Quirksmode имеет полный список много отличий, требующее внимание! -)

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

2

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

3

кеширование и предыдущие хеши страницы.

4

CSS - в значительной степени отсортировано в современных браузерах, но все еще проблема - особенно в отношении макета.

Обратите внимание, что это не критично, но проблема совместимости я почти всегда возвращаюсь к разработке сайта.

6

Прозрачные PNG в Internet Explorer 6, особенно потому, что обходное использование JavaScript-less при использовании AlphaImageLoader может иметь побочный эффект locking up IE6.

2

Я обнаружил, что IE 6 имеет довольно небольшие пределы допустимой глубины стека.

В одном месте я использовал хорошую рекурсивную функцию, чтобы получить позицию элемента в документе:

function getOffsetTop (element) { 
    var offset = 0; 

    if (element.offsetTop) 
     offset = offset + element.offsetTop; 

    if (element.offsetParent) 
     offset = offset + getOffsetTop(element.offsetParent); 

    return offset; 
} 

К сожалению, при вызове этого метода для элементов в иерархии очень глубокого узла, IE жалуется на превышение максимальный размер стека (я забыл точное сообщение об ошибке). Чтобы обойти эту проблему мне нужно использовать итеративный подход, чтобы сохранить размер стека маленький:

function getOffsetTop (element) { 
    var offset = 0; 

    if (element.offsetTop) 
     offset = offset + element.offsetTop; 

    var parent = element.offsetParent; 
    while (parent) { 
     if (parent.offsetTop) 
      offset = offset + parent.offsetTop; 
     parent = parent.offsetParent; 
    } 

    return offset; 
} 
0

При выполнении XMLHttpRequest и выполнение функции «onreadystatechange» свойство XMLHTTPRequest.responseText содержит данные, загруженные в этот момент в Firefox , но не в IE (и, возможно, Safari).

Это предотвращает захват частичных данных в этих браузерах для использования при отображении индикатора выполнения выполнения.

0

Каждая фиксированная ширина, центрированный сайт, который я создал, то есть использующий «margin: 0 auto» для некоторых, содержащих div, чтобы центрировать все вверх - не работает на IE6, пока я не тестирую это и применить «взломать». Это получает меня каждый раз.

1

Самый распространенный из них, о котором я могу думать, - и это была проблема для меня дважды на этой неделе - это IE6 и ошибка модели коробки. Поищи это!

В частности, проблема, о которой я думаю, заключается в том, что у вас есть плавающие DIVs, которые разработчик считает все подходящими в оболочке DIV, но они не в IE6, потому что они немного больше.

Таким образом, вместо трех столбцов, вы в конечном итоге с двумя, и ваш третий вниз в нижней части экрана, где-то - вы хотите:

+-------------------------------+ 
    |+------+ +-----------+ +------+| 
    ||  | |   | |  || 
    || foo | | bar  | | baz || 
    ||  | |   | |  || 
    ||  | |   | |  || 
    |+------+ +-----------+ +------+| 
    +-------------------------------+ 

но вы получите:

+-------------------------------+ 
    |+--------+ +------------+  | 
    ||  | |   |  | 
    || foo | | bar  |  | 
    ||  | |   |  | 
    ||  | |   |  | 
    |+--------+ +------------+  | 
    |+------+      | 
    ||  |      | 
    ||  |      | 
    || baz |      | 
    ||  |      | 
    ||  |      | 
    |+------+      | 
    +-------------------------------+ 
Смежные вопросы