![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Silwester |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 23.2.2007 Репутация: нет Всего: нет |
Всем добрый день,
Подскажите пожалуйста, что лучше использовать для добавления новых узлов в HTML Способ через document.write
или через document.createElement и AppendChild
? Т.е. есть ли какие-либо преимущества(например, для меня - 1-й намного удобней)/недостатки для обоих случаев, желательно с профессиональной точки зрения. В любом случае интересно мнение каждого. И вторая часть вопроса: Эти функции я загружаю в документ так
почему браузер выдает ошибку на этой строчке с формулировкой Не поддерживается ? (хотя при этом загружает страницу) Заранее благодарен. |
||||||
|
|||||||
| stup |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 17.4.2007 Репутация: нет Всего: 1 |
Используйте тот способ, который Вам более удобен в данной ситуации. Первый способ быстрее, но второй предоставляет больший контроль над создаваемыми элементами.
Ошибка выдается, потому что у функции создания элементов через DOM у Вас название неправильное Кроме этого, вместо
В первом случае Вы присваиваете window.onload результат, который возвращает функция Append_d_write, а во втором ссылаетесь на нее. Это сообщение отредактировал(а) stup - 9.7.2007, 15:47 |
||||
|
|||||
| Silwester |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 23.2.2007 Репутация: нет Всего: нет |
А когда необходимо передать этой функции параметры - как поступить?
Насчет неправильного названия - а какое будет правильным?) |
|||
|
||||
| stup |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 17.4.2007 Репутация: нет Всего: 1 |
и
Работать вместе не будут Насчет параметров - опишите ситуацию подробней, не понятно, что Вы имеете ввиду. |
||||
|
|||||
| Silwester |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 23.2.2007 Репутация: нет Всего: нет |
Это понятно))
Пусть у меня будет функция function f(k) { alert(k); } и я захочу сделать ее onload(простенький, ничего не подразумевающий пример) и напишу window.onload=f откуда она будет знать с каким параметром ей запуститься в то же время window.onload=f(1) работать не будет, т.к. ...не будет Так вот и вопрос - как передать параметр(ы) для функции, которая должна быть запущена onload? |
|||
|
||||
| stup |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 17.4.2007 Репутация: нет Всего: 1 |
Вот Вы и подошли к самой сути JavaScript
Нужно стараться избегать по смыслу таких функций, но если уж совсем приспичило передать параметр, то можно это сделать через объект, на событие которого Вы хотите повесить функцию, что бы в последстивии достучаться до параметра через this.
Если параметров много, то их лучше заворачивать в какой нибудь класс ParameterWrapper. Обратите внимание на слово this. И еще советую почитать http://forum.vingrad.ru/forum/topic-32350.html |
|||
|
||||
| Zeroglif |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 28 Всего: 66 |
||||
|
||||
| stup |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 17.4.2007 Репутация: нет Всего: 1 |
Тогда this не пашет :(
|
|||
|
||||
| Zeroglif |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 28 Всего: 66 |
||||
|
||||
| Silwester |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 23.2.2007 Репутация: нет Всего: нет |
Спасибо, оба тспособа действительно годятся
Еще по первой части вопроса Вот используемый пример:
Вопрос: почему AppenChild выводит результат с background, то есть как положено, а Append_d_write background не выводит, а выводит результат с белым фоном, то есть div как будто не действует? В тоже время если запустить ф-ю Append_d_child неправильно)):
браузер выдаст ошибку, но результат будет и будет с background!?! |
||||
|
|||||
| Zeroglif |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 28 Всего: 66 |
Ты просто не до конца разобрался с методом write(). Упрощённо говоря, он или пишет в поток (пока страница ещё грузится/поток не закрыт), или при уже закрытом потоке разрушает текущий документ и всё пишет в новый.
Когда ты вызываешь document.write() после загрузки (по событию onload), текущий документ сначала разрушается и аргументы метода пишутся уже с чистого листа. Отсюда ты не видишь никаких стилей. Когда же ты справа от onload ставишь не функцию, а сразу вызов, то безотносительно к событию функция будет вызвана в потоке (во время загрузки) тогда, когда до строчки вызова дойдёт интерпретатор. Отсюда предыдущий документ живёт, в том числе и его стили, а в него спокойно дописываются аргументы метода write(). |
|||
|
||||
| stup |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 17.4.2007 Репутация: нет Всего: 1 |
||||
|
||||
| Silwester |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 23.2.2007 Репутация: нет Всего: нет |
Ok спасибо
|
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |