Как вы размещаете данные в iframe?
Зависит от того, что вы подразумеваете под «размещать данные». Вы можете использовать target=""
атрибут HTML для <form />
тега, поэтому он может быть таким простым:
<form action="do_stuff.aspx" method="post" target="my_iframe">
<input type="submit" value="Do Stuff!">
</form>
<!-- when the form is submitted, the server response will appear in this iframe -->
<iframe name="my_iframe" src="not_submitted_yet.aspx"></iframe>
Если это не так, или вы ищете что-то более сложное, пожалуйста, отредактируйте свой вопрос, чтобы включить более подробную информацию.
Существует известная ошибка с Internet Explorer , который происходит только тогда , когда вы динамически создавать свои фреймы и т.д. , используя Javascript (есть обходные здесь ), но если вы используете обычную HTML - разметку, вы хорошо. Целевой атрибут и имена фреймов не являются каким-то хитрым взломом ниндзя; хотя это было объявлено устаревшим (и поэтому не будет проверяться) в HTML 4 Strict или XHTML 1 Strict, оно является частью HTML с 3.2, формально является частью HTML5 и работает практически во всех браузерах, начиная с Netscape 3.
Я проверил это поведение при работе с XHTML 1 Strict, XHTML 1 Transitional, HTML 4 Strict и в «режиме причуд» без указания DOCTYPE, и оно работает во всех случаях с использованием Internet Explorer 7.0.5730.13. Мой тестовый пример состоит из двух файлов, использующих классический ASP на IIS 6; они воспроизведены здесь полностью, так что вы можете сами проверить это поведение.
default.asp
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Form Iframe Demo</title>
</head>
<body>
<form action="do_stuff.asp" method="post" target="my_frame">
<input type="text" name="someText" value="Some Text">
<input type="submit">
</form>
<iframe name="my_frame" src="do_stuff.asp">
</iframe>
</body>
</html>
do_stuff.asp
<%@Language="JScript"%><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Form Iframe Demo</title>
</head>
<body>
<% if (Request.Form.Count) { %>
You typed: <%=Request.Form("someText").Item%>
<% } else { %>
(not submitted)
<% } %>
</body>
</html>
Мне было бы очень интересно услышать о любом браузере, который не запускает эти примеры правильно.
target
атрибута для HTML<form>
. После того, как форма была опубликована, и я вижу содержимое в целевом iframe, я хочу предоставить пользователю возможность сохранить это содержимое в файл. Это то, что я хотел спросить. Дайте мне знать, если это нужно больше ясности.IFRAME используется для встраивания другого документа в HTML-страницу.
Если форма должна быть отправлена в iframe на странице формы, ее можно легко получить с помощью целевого атрибута тега.
Задайте для целевого атрибута формы имя тега iframe.
Расширенное использование целевого iframe
Это свойство также может быть использовано для создания ajax-подобного опыта, особенно в таких случаях, как выгрузка файлов, и в этом случае становится обязательным отправлять форму для выгрузки файлов.
Для iframe можно задать ширину и высоту 0, а форму можно отправить с целевым объектом, установленным в iframe, и открыть диалоговое окно загрузки перед отправкой формы. Таким образом, он макетирует элемент управления ajax, так как он все еще остается в форме ввода jsp, с открытым диалогом загрузки.
Exmaple
источник
Эта функция создает временную форму, а затем отправляет данные с помощью jQuery:
target - это имя name для целевого iFrame, а data - это объект JS:
источник
Если вы хотите изменить входные данные в iframe, тогда отправьте форму из этого iframe, сделайте это
Обычно это можно сделать только в том случае, если страница в iframe имеет тот же источник, но вы можете запустить Chrome в режиме отладки, чтобы игнорировать ту же политику происхождения и проверить это на любой странице.
источник