![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| diam |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 348 Регистрация: 23.1.2005 Где: Екатеринбург Репутация: 6 Всего: 16 |
Доброго всем времени года!
Как-то я создавал тему о подгрузке данных без перезагрузки страницы. Я остановился на использовании метода appendChild, который добавляет в конец тела документа скрипт. Вот как выглядит функция, которая вызывает аплоад данных:
и используетс примерно следующим образом в документе:
Таким образом, при нажатии на кнопку GetData на странице браузер пользователя должен создать тип элемента "SCRIPT", указать, что он "text/javascript", сказать, что он находится по адресу "http://mysite.ru/upload/?var1=val1&var2=val2", и добавить этот элемент как дитя к document.body. Таким образом, браузер загрузит страницу (uploaded_script.src), думая, что это файл с кодом js. В свою очередь, по этому запросу сервер передаст cgi-скрипту полученные методом GET переменные (var1 и var2), а так же их значения (val1 и val2, соотетственно), скрипт установит тип генерируемого как "text/javascript", и выдаст скрипт, который вызовет некоторые функции, которые уже есть у клиента. Этот метод прекрасно работает в IE, Gecko, Opera (по крайней мере 7), но, такая собака, отказывается работать на движках KHTML, при этом у них метод appendChild поддерживается, но, фактически, ничего не загружает "откуда не попадя". В принципе, KHTML - это лишь браузер konqueror, на который проще забить, но всё же: 1. Можно ли, используя метод appendChild, подгрузить скрипт? 2. Каким способом ещё можно подгружать данные без перезагрузки страницы? |
||||
|
|||||
| Aliance |
|
||||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
Способов много, точнее методов для вставки...
На сколько я знаю, это новый движок (хотя Konqueror`ом я и год назад пользовался) и про него (по крайней мере мне) мало что известно. По идеи, он должен поддерживать W3C DOM. Может стоит прибегнуть к обычным write() или innerHTML? Это сообщение отредактировал(а) Aliance - 26.3.2005, 16:41 |
||||
|
|||||
| diam |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 348 Регистрация: 23.1.2005 Где: Екатеринбург Репутация: 6 Всего: 16 |
Konqueror/3.3; FreeBSD (KHTML, like Gecko) --- это из хелпа |
|||
|
||||
| diam |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 348 Регистрация: 23.1.2005 Где: Екатеринбург Репутация: 6 Всего: 16 |
А можно подгрузить IFRAME, выдернуть из него текст и eval() его
|
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
Да, читай подробнее в прикрепленной теме ОКНА и ФРЕЙМЫ.
К слову: eval() не пользуйся, ее в большинстве случаев можно заменить, зато повысится реально производительность. |
|||
|
||||
| diam |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 348 Регистрация: 23.1.2005 Где: Екатеринбург Репутация: 6 Всего: 16 |
Самое забавное, что konqueror не отображает нормально результаты с http://www.google.com/webhp?complete=1&hl=en. Чаще всего он вылетает с сообщением об ошибке, иногда ругается, и лишь иногда, при вводе слова, он начинает выводить результат - и сразу вываливается (а результат отображается вкривь и вкось)
Поэтому я принял волевое решение. Всех, кто не поддерживает нормально метод appendChild - не поддерживать. Себе дороже со старыми и/или кривыми браузерами возиться... |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Также старая Опера 6, возможно ИЕ4 просушат мозги, но на них можно смело забить.
Хотя в твоём случае можно было заранее создать невидимый ифрейм и перезагружать его, назад получаешь JS код. Плюсы в том что отсылать можешь формы POST'ом. Если разрешается забить на Оперу 7, то можно заюзать XMLHTTPRequest, штука мощная. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |