你如何发布到iframe?
如何将数据发布到iframe?
取决于“发布数据”的含义。 您可以在<form />
标签上使用HTML target=""
属性,因此它可以像下面这样简单:
<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>
如果不是这样,或者你在追求更复杂的东西,请编辑你的问题以包含更多细节。
使用Javascript(这里有一个解决方法)动态创建iframe等时,只会发生Internet Explorer的一个已知错误,但如果您使用的是普通的HTML标记,那就没问题。 目标属性和框架名称不是一些聪明的忍者破解; 虽然它在HTML 4 Strict或XHTML 1 Strict中被弃用(因此不会被验证),但它自3.2起成为HTML的一部分,它正式成为HTML5的一部分,并且自从Netscape 3以来,它几乎适用于所有浏览器。
我已经验证了此行为与XHTML 1 Strict,XHTML 1 Transitional,HTML 4 Strict以及没有指定DOCTYPE的“quirks模式”一起使用,并且它在任何情况下都可以使用Internet Explorer 7.0.5730.13。 我的测试用例由两个文件组成,在IIS 6上使用经典ASP; 他们在这里被完整地转载,所以你可以自己验证这个行为。
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>
如果浏览器没有正确运行这些示例,我会非常感兴趣。
iframe用于在html页面内嵌入另一个文档。
如果要将表单提交给表单页面中的iframe,则可以使用标记的target属性轻松完成表单。
将表单的目标属性设置为iframe标记的名称。
<form action="action" method="post" target="output_frame">
<!-- input elements here -->
</form>
<iframe name="output_frame" src="" id="output_frame" width="XX" height="YY">
</iframe>
高级iframe目标使用
这个属性也可以用来产生类似Ajax的体验,特别是在文件上传的情况下,在这种情况下,它必须提交表单,以便上传文件
iframe可以设置为0的宽度和高度,并且可以将目标设置为iframe来提交表单,并在提交表单之前打开加载对话框。 所以,它嘲笑ajax控件,因为控件仍然保留在输入窗体jsp上,并且加载对话框打开。
〔实施例
<script>
$( "#uploadDialog" ).dialog({ autoOpen: false, modal: true, closeOnEscape: false,
open: function(event, ui) { jQuery('.ui-dialog-titlebar-close').hide(); } });
function startUpload()
{
$("#uploadDialog").dialog("open");
}
function stopUpload()
{
$("#uploadDialog").dialog("close");
}
</script>
<div id="uploadDialog" title="Please Wait!!!">
<center>
<img src="/imagePath/loading.gif" width="100" height="100"/>
<br/>
Loading Details...
</center>
</div>
<FORM ENCTYPE="multipart/form-data" ACTION="Action" METHOD="POST" target="upload_target" onsubmit="startUpload()">
<!-- input file elements here-->
</FORM>
<iframe id="upload_target" name="upload_target" src="#" style="width:0;height:0;border:0px solid #fff;" onload="stopUpload()">
</iframe>
链接地址: http://www.djcxy.com/p/21931.html
上一篇: How do you post to an iframe?
下一篇: prevent refresh of page when button inside form clicked