![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Panoramix |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 17.3.2007 Где: Питер Репутация: нет Всего: нет |
Здравствуйте!
Есть проблема (судя по результатам гугла, не только у меня). Существует достаточно сложная форма для отправки новостей на сайт. Она принимает либо html, либо bbcode (в зависимости от переключателя (id: use_html_box). Кроме кнопки "отправить" внизу существуют ещё две кнопки: "предпросмотр" (id: preview_button) и "получить html" (id: html_button). Обе сделаны на AJA,
причём абсолютно одинаковым способом. Первая посылает запрос на php-скрипт, получает спарсированный из bbcode html-код и отображает его внутри div'а (id: news_preview), появляющегося вместо формы (id: news_edit), а вторая - тот же код, только с заменёнными на символы угловыми скобками и пр. (php-функция htmlspecialchars()), после чего отображает его в нередактируемом textarea (id: html_response), появляющемся на месте textarea для редактирования статьи (id: news_body). Обе кнопки при повторном нажатии возвращают форму на место. JS-код:
Как видите, обе функции построены совершенно одинаково, и, более того, при тестировании с помощью FireBug становится видно, что они возвращают совершенно правильные ответы с сервера. ОДНАКО: Если в IE всё отлично работает, то в Opera и Firefox кнопка "предпросмотр" работает без проблем, а вот такая же кнопка "получить html" даже при правильном ответе с сервера первое нажатие после перезагрузки отображает нормально, а вот при последующих каждый раз берёт информацию из кэша, то есть не хочет обновлять её, а отображает то, что было запрошено в первый раз! Я использовал всё, что советуют по этому поводу в интернете (случайные переменные, дописанные к URL, заголовки "no-cache" в php) - но ничего не помогло!!! Я не понимаю, что делать - если кто-нибудь сталкивался с таким, пожалуйста, помогите! P.S. Вот код использованной мною библиотеки Aja(x) - объект AjaxInteraction():
Это сообщение отредактировал(а) 12345c - 26.3.2007, 18:01 |
||||||
|
|||||||
| Бонифаций |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: нет Всего: 40 |
Я сталкивался с этим, и нашел комбинацию, которая вроде работает во всех browser.
В ajax - ответе (то есть в том что у вас обрабатывает $_SERVER['SCRIPT_NAME']?>?action=get_html&rand="+Math.random() ) устанавливаю
PS. у меня это jsp, так что на php сами уж как-нибудь переведите -------------------- Бонифаций. |
|||
|
||||
| Panoramix |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 17.3.2007 Где: Питер Репутация: нет Всего: нет |
спасибо, сейчас попробую..
p.s. Moderator: AJA, в отличие от AJAX - это просто Асинхронный JavaScript, без XML..
Это сообщение отредактировал(а) 12345c - 26.3.2007, 20:44 |
|||
|
||||
| Panoramix |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 17.3.2007 Где: Питер Репутация: нет Всего: нет |
Не помогает. Попробовал и опубликованную комбинацию, и сам чего-то менял, ничего. Если кому интересно, на PHP оно выглядит так:
Ни-че-го-не-по-ни-ма-ю... Firefox, Opera, Больше всего поражает то, что одна кнопка работает, а другая, такая же! - нет... Это сообщение отредактировал(а) Panoramix - 26.3.2007, 20:08 |
|||
|
||||
| Panoramix |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 17.3.2007 Где: Питер Репутация: нет Всего: нет |
Только что обнаружилась престранная вещь. Если в параметре-функции AjaxInteraction вместо всего прописать тупое alert(text) - то... оно выдаёт правильный результат!!! Кэш текстового поля? =) Я в замешательстве. Сейчас буду разбираться.. Добавлено через 11 минут и 15 секунд Люди!!! Всем спасибо за попытки помочь, но над моими багами вы, к сожалению, не властны, т.к. не имеете к ним доступа, они у меня в мозгах. Всё дело не в кэше и не в Aja(Moderator - ), а в том, что Firefox'у и Опере не нравится конструкция
Они с её помощью дают обновить поле только один раз, Бог знает почему.. А вот такая фишка:
..меняет всё дело. Занавес. Тему можно удалить из-за её неоспоримой глупости. |
||||
|
|||||
| Бонифаций |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: нет Всего: 40 |
А чем вызвано то что вы ручками всякие там [textarea].innerHTML устанавливаете? Почему не (скажем) проверенный в боях prototype.js ?
-------------------- Бонифаций. |
|||
|
||||
| Panoramix |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 17.3.2007 Где: Питер Репутация: нет Всего: нет |
Почему не использую сторонние библы? Потому что в них много лишнего, а в своей я использую только то, что мне нужно.
А что такое prototype.js? |
|||
|
||||
| Бонифаций |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: нет Всего: 40 |
-------------------- Бонифаций. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Применение библиотек | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |