Сообщение от Zeroglif
|
Тем более жутко, что нет вообще никакой необходимости replace-ить все текстовые ноды без разбора (на кой ляд это делается?), создавать для каждой ноды элемент, изменять его контент через innerHTML, потом "проверять".
|
Так я увижу ваш вариант или нет? Может и правда есть какой-то более простой способ.
Сообщение от Zeroglif
|
Свойство 'innerHTML' стандартизировано? Нет. Согласно спекам MS (как пример) это свойство "sets or retrieves the HTML between the start and end tags of the object", никаких точных деталей о представлении. Сначала вы приводите НЕИЗВЕСТНУЮ строку в контент, браузер по своим законам парсит её, форматирует и т.д., затем делаете обратное действие, которое точно также зависит от представления браузера(ом). Почему вы решили, что в этом случае можно гарантировать равенство неизвестных вам заранее строк (innerHTML==nodeValue/data)?
|
И во всю применяется во всех известных фреймворках:
prototype-1.6.0.3, uncompressed версия, стр. 411, метод String.prototype.unescapeHTML
Подобная ситуация решена тем же способом.
Думаете, разработчик PrototypeJs плохо ее протестировал?
Тогда яркий пример: стр. 1022, метод get класса Hash. Чувак до сих пор беспокоится о возможности отсутствия метода hasOwnProperty, хотя все адекватные яваскриптеры уже забыли давно об этом. Неужели вы думаете, что при этом он вдруг внезапно забыл качественно протестировать innerHTML. К тому же метод String.prototype.unescapeHTML уже не раз менялся, и каждый раз причиной указывалась кроссбраузерность.
Вы думаете, что разработчики, какого ни будь браузера, вдруг реализуют его (innerHTML) работу по-своему? Ну, если только они задумают его (браузер) утопить.
Беспокоитесь о кустарном браузере, изобретенном студентом Васей? Не забудьте еще о IE5.5, netscape, и Петя еще что-то изобретает.
Сообщение от Zeroglif
|
Свойство 'innerHTML' стандартизировано? Нет.
|
Впервые слышу. Если бы это было так, то об этом трубили бы на каждом углу.
w3c много, что перенял из стандарта ms.
Я тоже обеими руками за соблюдение стандартов, но в данном случае, даже если это так, то я сделаю исключение.
Сообщение от Zeroglif
|
Ради интереса попробуйте добавить в текст что-нибудь вроде <p>...
|
Попробовал. Все норм.