Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Какая-то тонкость при работе с innerHTML / 10 сообщений из 10, страница 1 из 1
04.06.2009, 14:35
    #36025761
smm
smm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какая-то тонкость при работе с innerHTML
Всем привет!

Есть кусок кода на JS
Код: plaintext
1.
2.
3.
...
obj.innerHTML="<select><option>qqq</option></select>";
...

Все работает нормально, отображает указанный HTML на элементе DIV в нужном месте (DIV создается динамически, добавляется к document.body.appendChild() и у него style.position='absolute')

при попытке заменить на таблицу

Код: plaintext
1.
2.
3.
...
obj.innerHTML="<table><tr><td>qqq</td></tr></table>";
...

Ничего не отрисовывает, но внизу страницы появляется какой-то невидимый блок

Дальше стал пробовать использовать в innerHTML разные элементы.
По одной части элементов отрабатывает нормально (SELECT, INPUT), а по другой добавляет какой-то невидимый блок в конец страницы.

Мне нужно в DIV отобразить таблицу или список

В чем тут дело?
...
Рейтинг: 0 / 0
04.06.2009, 14:57
    #36025819
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какая-то тонкость при работе с innerHTML
Не хочется тестировать или проверять, поэтому сделаю предположение по аналогии со вставкой таблицы средствами DOM: иерархия таблицы не table - > tr -> td, a table -> tbody -> tr -> td. Попробуй добавить tbody ... да и стиль применить не помешает - вдруг там белое по белому или размер шрифта никакой или отступы отрицательные ...
...
Рейтинг: 0 / 0
04.06.2009, 15:29
    #36025899
smm
smm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какая-то тонкость при работе с innerHTML
Сейчас я буду много ругаться (пип, пип, пип) все отрабатывает как надо, просто цвет текста совпал со цветом фона :)

PS: Как можно побороть эффект увеличения высоты страницы при динамическом добавлении элемента DIV, т.е. при добавлении дива высота страницы чуть чуть увеличивается и появляется вертикальная линейка прокрутки, хотя див по размерам и расположению не выходит за границы начальной страницы. Это изменение высоты появляется даже когда див пустой.
...
Рейтинг: 0 / 0
04.06.2009, 16:14
    #36026025
smm
smm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какая-то тонкость при работе с innerHTML
Немного поразбирался выяснилось, что если страница имеет тэг <FORM>, то добавление дива в виде
Код: plaintext
document.forms[ 0 ].appendChild(objdiv)

не увеличивает общую высоту страницы, а использование
Код: plaintext
document.body.appendChild(objdiv)

увеличивает, высоту.
Но ведь не все страницы имеют тэг FORM, может есть какой-нибудь универсальный способ добавления свободнорасполагаемого дива к странице без увеличения высоты последней?
...
Рейтинг: 0 / 0
04.06.2009, 16:36
    #36026096
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какая-то тонкость при работе с innerHTML
Можно пользоваться стилем overflow:hidden у блочных контейнеров - очень действенная штука.
...
Рейтинг: 0 / 0
04.06.2009, 17:11
    #36026201
smm
smm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какая-то тонкость при работе с innerHTML
А этот стиль применяется к вставляемому диву? или к странице?

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

Попробовал применить этот стиль к создаваемому диву -в результате все равно увеличивает высоту страницы.
...
Рейтинг: 0 / 0
04.06.2009, 19:15
    #36026444
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какая-то тонкость при работе с innerHTML
Конечно, к овнеру! Просто я ж не знаю, помещается твой див в другой контейнер или просто на страницу.
Хотя можно также применять и к этому диву, тогда он не будет раздвигаться по высоте в засисмости от контента и будет соответствовать заданной высоте. Если страница все равно раздвигается, значит, его координата + высота превышает высоту страницы. Это раз.
Второе - при добавлении дива прямо на страницу он помещается не перед контентом, а после него. Тогда надо играться с его положением (задавать абсолютное позиционирование относительно родителя с хотя бы позиционированием relative). Но решение может быть после появления соответствующей задачи.
...
Рейтинг: 0 / 0
05.06.2009, 10:13
    #36027000
smm
smm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какая-то тонкость при работе с innerHTML
У создаваемого DIV позиционирование абсолютное и его размеры фиксированы и занимаю порядка 20% общей площади экрана. Причем когда DIV выводится, то видно, что он сам не может выходить за границы экрана. И увеличение высоты страницы происходит на одинаковую высоту, независимо от высоты создаваемого DIVa.

Пока проблему решил, беря на странице какой-нибудь элемент и добавляя DIV к его родителю через parentNode.appendChild(div). В этом случае высота страницы не увеличивается. Хотя мне это кажется как-то через Ж и не понимаю логику работы.
...
Рейтинг: 0 / 0
05.06.2009, 20:36
    #36028653
sld
sld
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какая-то тонкость при работе с innerHTML
я у div обычно
Код: plaintext
display: inline
добавлял
...
Рейтинг: 0 / 0
10.06.2009, 09:44
    #36034729
smm
smm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какая-то тонкость при работе с innerHTML
Пробовал inline -все равно увеличивает высоту страницы.
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Какая-то тонкость при работе с innerHTML / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]