POST форма в фрейме - PullRequest
1 голос
/ 09 июня 2010

Я бы хотел разместить форму в iframe, сгенерированную так:

Мой JS загружает iframe внутри страницы, добавляет форму в iframe и отправляет форму. Я хотел бы, чтобы iframe загрузил результат этого запроса. Итак, я хотел бы эффективно опубликовать форму и отобразить результат внутри iframe , не касаясь родительского элемента (не считая, прежде всего, размещения iframe для отображения).

Я использую код из этого ответа:

JavaScript пост-запрос как форма отправки

но я не могу заставить его перезагружать родителя. Я публикую форму, и вместо обновления iframe обновляется весь родительский элемент. Я не знаю, почему это так, поскольку URL-адрес, на который он публикуется, отличается и, по крайней мере, перенаправит туда.

Может кто-нибудь помочь мне с этой проблемой? Я просто хочу сообщение внутри iframe и только внутри iframe, в основном.

РЕДАКТИРОВАТЬ: После еще нескольких исследований, очевидно, форма не создается должным образом. Я использую document.createElement ("form"), а затем document.getElementById ("my_iframe_id"). AppendChild (form), чтобы добавить его, но, похоже, он работает неправильно.

Ответы [ 3 ]

7 голосов
/ 09 июня 2010

Исправьте, потому что вы создаете узел формы в текущем документе.

document.getElementById("my_iframe_id").contentWindow.document.createElement('form'); 

, чтобы создать его внутри iframe.

1 голос
/ 09 июня 2010

Теперь это работает, часть этого заключалась в том, что «документ» был неправильным, как сказал Дэн, а другая часть заключалась в том, что при вставке в iframe нужно использовать document.getElementById(div).contentWindow.document.childNodes[0].appendChild(form) вместо document.getElementById(div).innerHTML.

0 голосов
/ 09 июня 2010

Не уверен, насколько это поможет, но ответ, на который вы указываете, не дает форме имя / идентификатор. Если вы пытаетесь опубликовать форму с чем-то вроде document.getElementById('myForm').submit(), у вас может быть проблема, потому что ваша форма не имеет имени / идентификатора.

В прошлом у меня были проблемы с отправкой форм, по-видимому, отправкой неправильной формы, когда на странице несколько форм. В любом случае предоставление формы имени / идентификатора, а затем получение формы по идентификатору и вызов submit(), казалось, решали проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...