Войти

Показать полную графическую версию : Вопросик по JavaScript


Drem
08-04-2006, 23:42
Например после какого-то события в ход идёт следующяя функция:

function somefun(){
document.write("Какойто текст")
}

Так вот скажите мне как сделать так что-бы "какойто текст" добавлялся к старому документу, а не создавал новый, и только тогда писал "какойто текст"???
Тот же форум дописывает ваше сообщение к более ранним.

Prisoner
09-04-2006, 03:43
1) Простой вариант - используя innerHTML
2) Более сложный - не используя innerHTML, а создавать элементы ручками
Теперь подробнее. Пусть у нас есть некий список блоков заключенный в некий контейнер с известным id (для форума это череда сообщений, к примеру, в div'е). Каждое сообщение со всей его инфой - блок вида "кусок html кода". Последний блок делаем как "кусок html кода" + "невидимый блок (div или span) с неким id". Тогда по событию мы в невидимый блок (его id мы знаем) вставляем по одному из двух вариантов нужный html код, меняем значение его id, а затем для материнского контейнера добавляем в конец списка его дочерних элементов блок в виде "невидимый блок (div или span) с неким id" для таких же последующих событий. Хм... достаточно запутано? :)

Drem
09-04-2006, 12:05
Ну нельзя сказать что уж сильно запутано, суть по-мойму я понял, теперь буду разбираться.
Спасибо за ответ.
Вот только я не понял что такое innerHTML :(

Prisoner
10-04-2006, 09:58
Ну это проще: есть к примеру некий слой - <div id="some_div"></div>. Тогда JS-код document.getElementById('some_div').innerHTML='It's some div with <i>HTML</i> code <b>inside</b>' поместит код в кавычка в этот слой, причем все теги внутри кавычек будут интерпретированы и применены к тексту. В общем innerHTML объекта это все, что есть между открывающим и закрывающим тегами. Чтение, запись. Очень удобно и просто. До относительно недавних пор этот метод держал только IE, сейчас вот даже моя любимая Опера научилась :).




© OSzone.net 2001-2012