Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не работает innerHtml в Mozilla, оказалось просто имя не верно заданно :) 
:(
    Опции темы
katka
Дата 14.1.2005, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 19.7.2004

Репутация: нет
Всего: 6



вообще-то, вопрос не новый. но я почему-то, ничего не нашла похожего на форуме 8\
опять у меня беда с этими браузерами 8((
вот:
Код

<div id="test" name="test">текст</div>
<a href="javascript:change_test()">меняй текст!</a>

Код

function change_test() {
mm=document.GetElementById("test");
mm.innerHtml="новый текст";
}

чего ещё этой Мозилле надо, чтобы всё летало?? или она вообще иннер не поддерживает? smile
--------------------
если с другом буду я, если с другом буду я, а медведь — без друга
PM MAIL WWW ICQ   Вверх
Се ля ви
Дата 14.1.2005, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

Репутация: 5
Всего: 127



Цитата(katka @ 14.1.2005, 12:50)
она вообще иннер не поддерживает?

Совершенно верно! smile Более того - IMHO, правильно делает.

Зато поддерживает гораздо более стройную, правильную, логичную модель W3C DOM (IE, скрипя зубами, её тоже частично поддерживает).

В твоём случае надо писать так:
Код
function change_test() {
   mm=document.GetElementById("test");
   if (mm.hasChildNodes() && mm.childNode[0].nodeType == 3) // Есть ли содержимое и текстовое ли оно (не другоие теги?)
       mm.childNode[0].nodeValue = "новый текст";
}


Почитай про W3C - штука очень мощная и правильная, если нормально освоишь - у тебя эти иннеры тоже будут вызывать отвращение smile


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
katka
Дата 14.1.2005, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 19.7.2004

Репутация: нет
Всего: 6



гмммм.. 8( у меня, может, неправильная какая-то Мозилла? старая, может? Firefox №0.8
но она говорит "document.GetElementById() is not a function" 8(
это как так??

а этот DOM по-русски можно изучить?
--------------------
если с другом буду я, если с другом буду я, а медведь — без друга
PM MAIL WWW ICQ   Вверх
Sardar
Дата 14.1.2005, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата
Совершенно верно!  Более того - IMHO, правильно делает.

Се ля ви ты не прав, innerHTML поддерживается всеми браузерами как расширение DOM HTML smile


Цитата(katka @ 14.1.2005, 12:57)
гмммм.. 8( у меня, может, неправильная какая-то Мозилла? старая, может? Firefox №0.8
но она говорит "document.GetElementById() is not a function" 8(
это как так??

Как в первом так и во втором случае не правильно заданно имя, не забываем что JS это регистрозависимый(к счастью smile ) язык.

Код
function change_test() {
var mm=document.getElementById("test");
mm.innerHTML="новый текст";
}


На будущее будте внимательными smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
katka
Дата 14.1.2005, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 19.7.2004

Репутация: нет
Всего: 6



.. 8(( всё время забываю, что надо в "начинающих" писать 8(

а.. поменять Get на get я пробовала.. только во 2-м случае.. а в 1-м — и впрямь, работает!
спасибо вам
--------------------
если с другом буду я, если с другом буду я, а медведь — без друга
PM MAIL WWW ICQ   Вверх
Sardar
Дата 14.1.2005, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(katka @ 14.1.2005, 13:44)
.. 8(( всё время забываю, что надо в "начинающих" писать 8(

Мне не трудно перенести тему, всё равно в 60% случаев дают имя топику не информативное, изменяю, а заодно и переношу smile smile

Да не в обиду Се ля ви расмотрим не правильный подход:
Код
function change_test() {
  var mm=document.getElementById("test"); //не забываем var, ибо переменная локальная
  //иначе не удивляемся если вне функции mm существует
  if (mm.hasChildNodes() && mm.childNode[0].nodeType == 3) // Есть ли содержимое и текстовое ли оно (не другоие теги?)
  //hasChildNodes() - самый бесполезный метод нод в JS, обычно childNodes.length>0
  //первый потомок - текстовая нода, изменяем её значение
      mm.childNode[0].nodeValue = "новый текст";
 //и вдруг: <div>Это заменится <b> А это НЕТ!!!</b> Это тоже нет =/ </div>
}


Как видим если изменять содержимое таким способом, то нужно пробегатся по всем нодам. Не надо говорить что в данном случае тегов внутри не будет, опыт подсказывает что способ для текстовых документов не подходит smile
Для этого и существуют innerHTML и innerText(для IE), textContent(Мозилла). Мы ведь не с абстрактным pure XML работаем, а хотим работать удобно.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Се ля ви
Дата 14.1.2005, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

Репутация: 5
Всего: 127



Гы... GetElementById... А слона-то я и не приметил!.. smile Тупо скопировал и даж не проверил, т.к. был уверен. Да.... Старею, видать...

Цитата(Sardar @ 14.1.2005, 14:31)
innerHTML поддерживается всеми браузерами как расширение DOM HTML

Не правильно это - идти на поводу у IE... smile Хотя с
Цитата(Sardar @ 14.1.2005, 14:57)
Мы ведь не с абстрактным pure XML работаем, а хотим работать удобно.
тоже трудно спорить... По мне так лучше всё-таки функцию иметь, но в некоторой стандартной библиотеке, по-умолчанию подгружаемой, как в Java библиотека java.lang.* - т.е. всё в рамках DOM`а, просто уровень НАД ним - и всегда можно просмотреть исходники и принять решение, что лучше в каждом конкретном случае - использовать DОМ, как более низкоуровневую реализацию, или уже пользоваться иннерами - это было бы логично...

Цитата(Sardar @ 14.1.2005, 14:57)
//и вдруг: <div>Это заменится <b> А это НЕТ!!!</b> Это тоже нет =/ </div>

Ну, я уж в мелочи не стал вдаваться... Хорошо, что ты написал. smile
Вообще я бы removeChild`ом по переборному циклу всё содержимое удалил - но лень писать было...

smile
Цитата(Sardar @ 14.1.2005, 14:57)
//hasChildNodes() - самый бесполезный метод нод в JS, обычно childNodes.length>0

IMHO - что в лоб, что полбу... smile

Это сообщение отредактировал(а) Се ля ви - 14.1.2005, 16:58


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
Aliance
Дата 14.1.2005, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0507 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.