| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Передать запрос POST скрытому фрейму |
| Автор: Папараццы 27.8.2007, 09:53 | ||||||
Вот собственно сама страничка которая грузится в главную страницу , форма которая отправляет и ПХП скрипт который проверяет было ли послано что либо...
Это код главный страницы который обрабатывает этот фрейм (Не указал части которые вызывают фрейм т.к. они вроде как работают )
Проблема в том что при нажатее Send, Firefox выдает ПХП результат что есть ПХП пост. А в Эксплороре..Как бы даже фрейм не меняется .... В чем может быть проблема ? Заранее благодарен.. |
| Автор: Ghirik 27.8.2007, 12:54 |
| Это что, прикол? Или прием какой то особый - name="iframe" а id="frame" |
| Автор: SamDark 27.8.2007, 13:37 |
| Папараццы, IE дублирует name в id, так что ничего удивительного тут нет. |
| Автор: Папараццы 27.8.2007, 13:38 |
| А что это имеет какое то отношение ? Добавлено через 6 минут Хех прикольно однако. |
| Автор: Ghirik 27.8.2007, 13:45 | ||||
| Почему они разные то?!!! Может Mozilla глотает такой бардак, а у IE крыша едет. Как может быть neme одно, а id другое?
|
| Автор: SamDark 27.8.2007, 14:49 |
| Ghirik, Вообще может. name и id никак не связаны и теоретически могут быть разными. Практически же ie иногда шалит. |
| Автор: Ghirik 27.8.2007, 16:21 | ||||
| IE не понимает parent.add Я создал в родителе див с id=div1 и вот такая строчка заработала
Но записал я это не через window.onload , а
Хотя, разницы нет. |
| Автор: Папараццы 27.8.2007, 17:21 | ||||
И сама страница
Опять не работает в IE.. а в Мазилле все оки. |
| Автор: Папараццы 27.8.2007, 18:38 |
| Пробовал создать ПроксиФрейм где создайтся все элементы и там уже идет submit форму котороя принимает ПОСТ запрос. и Уже потом выводит значение.. Крч что то у мен там запуталось.. Всетаки не понимаю можно ли послать ПОСТ запрос в скрытый фрейм без прокси форм ? Методом вроде этого ??? Если можно плз с примером |
| Автор: Папараццы 27.8.2007, 18:55 | ||
У меня в IE 7.0 даже это не работает после того как я нажимаю... Интресно очень..Будто не выполняет JavaScript. От чего это может быть ? |
| Автор: Папараццы 27.8.2007, 19:48 | ||
Вот этот код в Мозилле переносит <script></script> , тот что в stext и все работает а IE не переносит.. И не исполняет эти скрипты. |
| Автор: Ghirik 27.8.2007, 19:59 | ||||||||
| Мне нужно решить аналогичную задачу. Потому я занялся этим вапросом. Пока сделал только чтение контента из iframe в div по событию "onload" на родительской странице. Выглядит это так: Родительская страница:
Страница подгружаемая в iframe:
Допускаю, что такой подход несколько корявый, но если кто знает как это сделать правильно, подскажите, пожалуйста. До сервера пока не добрался. Надеюсь, что проблем не возникнет. Добавлено @ 20:04
Нужно правильно "привязать" события. Использовать для Mozilla - onload в iframe, а для IE onload в подгружаемой странице. Приведенный мной код, работает везде. |
| Автор: Ghirik 27.8.2007, 20:39 |
| Папараццы, удалите обе Ваши функции add(stext) и window.onload, и припишите, как у меня обработку событий onClick. Всё должно заработать. Только нужно создать объект, который будет принимать данные. У меня - div1. |
| Автор: Папараццы 27.8.2007, 23:09 |
| Дело в том что сейчас под FireFox не работает : ( Добавлено через 14 минут и 37 секунд Вот правильный метод решение этой проблемы ( взят с книги Ajax для профессионалов. ) Смотри прикрепленный архив! Но у меня скажем так все отлично работало с функцией add(stext) {} . Только вот ПОСТ на отказ отказывается.. А Мазилла как я понел в последнем выражение не понимает именно это - parent.content.innerHTML=text.innerHTML т.е. Элемент content. Как сделать чтобы он его понял ??? |
| Автор: Папараццы 27.8.2007, 23:50 | ||
Кстати вот что заработало вроде бы нормально...
|
| Автор: Ghirik 28.8.2007, 09:52 | ||||
Для мозилы следует писать:
Во всяком случае из родительского документа следует обращаться к дочернему именно contentDocument, а из дочернего к родительскому у меня вообще не получилось обратиться для Mozill-ы. |
| Автор: Папараццы 28.8.2007, 11:20 |
| Ну вот я только через функцию. Между прочим попробовал именно то что я выставил. Все нормально работает на всех браузерах. |
| Автор: Ghirik 28.8.2007, 13:20 | ||||
| Ну вот, вроде всё работает. Я делал для себя, потому несколько по-другому. Работает во всех браузерах. Файл с формой и фреймом:
Типа, обработчик, скорее - отвечальщик
Уменя цель была передать данные из обработчика без перезагрузки страницы с формой. Данные передаются в div на странице с формой. Для меня вопрос закрыт. Для автора темы, вроде, то-же. |
| Автор: Папараццы 28.8.2007, 13:38 |
| А если убрать <body onload="parent.div1.innerHTML=document.body.innerHTML"> с answer.php ?? Выть уже вызывается функция когда iframe грузит ? т.е. присваивает HTML в div1 ?? |
| Автор: Ghirik 28.8.2007, 14:10 | ||
Эта строчка нужна для IE, IE не понимает "contentDocument". А как обратиться к дочернему документу, по событию загрузки фрейма для IE, я не знаю И всего то.... Да вообщем то, какая разница, все равно для IE и Mozilla синтаксис разный. Если всё писать в событии онлоад фрейма, то будет, опять же, две отдельных строчки. Сейчас ещё попробую помучать IE.... |
| Автор: Папараццы 28.8.2007, 15:23 |
| И опять виноват Microsoft!!!! На мыло Гейтся!! |
| Автор: Ghirik 28.8.2007, 15:31 | ||||
Вот теперь точно ВСЁ!
answer.php:
Работает везде. Нужно использовать именно событие onload, загружаемого в фрейм документа. Использовать событие onload iframe нежелательно. В IE событие onload iframe возникает даже при отсутствии контента. |
| Автор: Папараццы 28.8.2007, 16:04 |
| Вроде все работает! Разобрались вроде ! Спасибо тебе Ghirik, что помог мне ! |
| Автор: Ghirik 28.8.2007, 16:15 |
| Я и себе помог |
| Автор: cruelangel 24.9.2007, 21:17 |
| что-то я сумневаюсь, что ифрейм с дисплей:нон работает везде |
| Автор: Ghirik 24.9.2007, 22:27 | ||
А где не работает? Я смотрел в IE6, Mozilla2 и Optra9,2, везде работает... |
| Автор: cruelangel 25.9.2007, 01:28 |
| опера, во всяком случае раньше, ничего не грузила, если не собиралась это показывать... |