Firefox против IE: обработка innerHTML

После нескольких часов отладки мне кажется, что в FireFox innerHTML DOM отражает то, что на самом деле находится в разметке, но в IE innerHTML отражает то, что находится в разметке, ПЛЮС любые изменения, сделанные пользователем или динамически (т.е. через Javascript ).

Кто-нибудь еще нашел это правдой? Какие-нибудь интересные обходные пути, чтобы убедиться, что оба ведут себя одинаково?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
6
0
3 741
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Я использую jQuery .html (), чтобы получить согласованный результат во всех браузерах.

Проблема в том, что jQuery.html () действительно ли нет дает согласованные результаты. Цитата из соответствующей части документации jQuery: «Этот метод использует свойство браузера innerHTML. Некоторые браузеры могут не возвращать HTML, который точно копирует исходный HTML-код в исходном документе. Например, Internet Explorer иногда опускает кавычки вокруг значений атрибутов, если они содержат только буквенно-цифровые символы ".

merryprankster 30.09.2011 12:37
Ответ принят как подходящий

Я согласен с Пат. На данном этапе игры написание собственного кода для обеспечения кроссбраузерной совместимости с учетом доступных фреймворков Javascript не имеет большого смысла. Существует фреймворк практически на любой вкус (некоторые действительно совсем крошечные), и они сосредоточились на том, чтобы действительно абстрагироваться от всех различий между браузерами. Они проводят НАМНОГО больше тестов, чем вы, вероятно, сделаете.

Что-то вроде jQuery или Yahoo YUI (подумайте, сколько людей используют Yahoo Javascript за день и разнообразие браузеров) намного более проверено на практике, чем любой фрагмент, который вы или я придумали.

Использование прототипа и синтаксиса $ ("thisid") вместо document.getElementById ("thisid") может помочь вам. У меня это сработало.

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

Другие вопросы по теме