innerHTML - баг или что то незнаю? @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 6 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
AlexShop Муж.
участник
34
Сообщения: 1866
Зарегистрирован: 17.02.04
Заголовок сообщения: innerHTML - баг или что то незнаю?
Сообщение Добавлено: 19 Октябрь 2007, 08:26:23 
После 4 часов поиска ошибки, наткнулся на удивительную вещь.
JavaScript отказывался работать после такой строчки:

element.innerHTML = element.innerHTML

К сожелению свой код не могу превести - он очень громоздкий.
Как только упрощу до понятного примера, сразу выложу.

В гугле я нашел единственное упоминание о таком поведении:
http://groups.google.com/group/mozilla. … 9b87e6d8df

https://bugzilla.mozilla.org/show_bug.cgi?id=392511

Там говорится что то об эскейпинге, но у меня не получается.
Как только эскейплю - HTML код отображается как текст.

Понимаю, трудно представить проблему без кода, но может кто уже сталкивался с этим?
А пример я выложу, сразу как упрощу

_________________
Тот, кто задает вопрос, глупец в течение пяти минут, тот, кто его не задает, глупец всю свою жизнь. (Китайская поговорка)
prometheus Муж.
соучастник
20
Сообщения: 380
Зарегистрирован: 02.01.07
Откуда: у Майкла Дугласа базука?
Сообщение Добавлено: 19 Октябрь 2007, 08:47:52 

AlexShop писал(а):
element.innerHTML = element.innerHTML



Какой смысл в данной конструкции?
Обычно поступают так:
var param = "бла-бла-бла"
element.innerHTML = param;

_________________
Прометей.
AlexShop Муж.
участник
34
Сообщения: 1866
Зарегистрирован: 17.02.04
Сообщение Добавлено: 19 Октябрь 2007, 09:06:07 

prometheus писал(а):
Какой смысл в данной конструкции?


В коде у меня было так: element.innerHTML - уже содержал HTML код (он отображался в браузере). Нужно было добавить еще HTML код таким образом:
Код:
element.innerHTML = element.innerHTML + '<?php echo $html ?>'

Это не работало, даже когда $html неимело значения.

Я начал упрощать до:
Код:
element.innerHTML+= ''

и до такого:
Код:
element.innerHTML = element.innerHTML

Но JavaScript отказывался работать (хотя ошибки не показывал), пока я не удалил вообще эту строку.
Пробовал перепечатать - не помогает.
(на выходных попробую выложить пример)

_________________
Тот, кто задает вопрос, глупец в течение пяти минут, тот, кто его не задает, глупец всю свою жизнь. (Китайская поговорка)
T@i Муж.
новый человек
3
Сообщения: 36
Зарегистрирован: 12.07.07
Сообщение Добавлено: 19 Октябрь 2007, 10:23:19 
Код:
element.innerHTML = element.innerHTML + '<?php echo $html ?>'

А может это можно заменить так:
Код:
newval=document.createTextNode("mytext");
element.appendChild(newval);
gro
новый человек
17
Сообщения: 43
Зарегистрирован: 09.09.06
Сообщение Добавлено: 20 Октябрь 2007, 16:01:38 
AlexShop, а что там в element было до этого?
что в $html?
Никогда с подобным не сталкивался.
prometheus Муж.
соучастник
20
Сообщения: 380
Зарегистрирован: 02.01.07
Откуда: у Майкла Дугласа базука?
Сообщение Добавлено: 22 Октябрь 2007, 09:05:42 

AlexShop писал(а):

prometheus писал(а):
Какой смысл в данной конструкции?


Нужно было добавить еще HTML код таким образом



Ну, во-первых, можно прямо дописывать в элемент.
Код:
var message = "bla-bla";
element.insertAdjacentHTML("afterBegin", message);


Во вторых, можно добавить дополнительные контейнеры и туда вставлять.
И. наконец, в третих, можно считывать из нужного узла текст и потом при innerHTML его дополнять.

_________________
Прометей.
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 6 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100