Простейший код работает в MS IE, почему не работает в Mozilla, FireFox?
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Простейший код работает в MS IE, почему не... Expand / Collapse
Автор
Сообщение
13.09.2006 14:10
Forum Guru

Forum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum Guru

участник
Last Login: 30.11.2006 16:49
Сообщ.: 65, Visits: 694
Приветствую.

Вот собственно код:

<html>
<head></head>
<body>
<input type="button" value="set 1"
onclick="window.alert(document.getElementById('div_').firstChild.nodeValue);
document.getElementById('div_').firstChild.nodeValue = '1';
window.alert(document.getElementById('textarea_').firstChild.nodeValue);
document.getElementById('textarea_').firstChild.nodeValue = '1';">
<div id="div_" contentEditable=true>qq</div>
<textarea id="textarea_" cols=100 rows=40>area</textarea>
</body></html>

Причем Мозиллы вроде устанавливают значение, но почему тогда не показывают?! Если руками текст поправить - все равно показывают то, что в source :(

Версии - MS IE 6.0, Mozilla 1.6, FireFox 1.0.6. В Opera не пробовал.

Сообщ. #904338
13.09.2006 14:31
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
В Opera 9.01 изменение значения textarea через firstChild.nodeValue тоже не работает. По моему это из-за того, что для изменения значения полф формы надо использовать свойство value, а не DOM.
Сообщ. #904340
13.09.2006 14:47
Forum Guru

Forum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum Guru

участник
Last Login: 30.11.2006 16:49
Сообщ.: 65, Visits: 694
Полагаете, что это собственное понимание стандартов разработчиками Opera и Мозилл?

Не скажу, что все облазил, но достаточно долго искал в w3c.org и не нашел никаких запретов устанавливать текст в TEXTAREA через DOM. Вот ведь и в DOM Inspector-ах Мозилл этот лист отображается так же как и в DIV-е, и ничто не указывает на его особое поведение...

Если вдруг найдете объяснение этому в стандарте - ткните меня, пожалуйста, носом. А то мне Opera как браузер нравится больше IE, но вот такие особенности ужасно расстраивают..

Сообщ. #904341
13.09.2006 15:15
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Я нашел такой кусок в рекомендации DOM2 (DOM2-HTML.pdf) относящийся к атрибуту value интерфейса HTMLTextAreaElement (выделение мое).

Represents the current contents of the corresponding form control, in an interactive user agent. Changing this attribute changes the contents of the form control, but does not change the contents of the element. If the entirety of the data can not fit into a single DOMString, the implementation may runcate the data.

Это можно трактовать таким образом, что только атрибут value может использоваться для представления содержимого элемента формы которое показывает браузер и которое будет отправлено вместе с формой.

Это только предположение и беда скорее в неточности формулировок рекомендации. Но ведь все на свете предусмотреть невозможно.

Лично мне поведение MSIE кажется более логичным. Он дает менять значение любым удобным способом, но раз другие браузеры этого не позволяют, то придется использовать атрибут value.

Сообщ. #904343
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 5:59