你如何张贴到一个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> 

如果不是这样,或者你在追求更复杂的东西,请编辑你的问题以包含更多的细节。

有一个Internet Explorer的已知的错误,只有当你dynamic地创build你的iframe等使用Javascript(这里有一个解决方法 ),但如果你使用普通的HTML标记,你没事的。 目标属性和框架名称不是一些聪明的忍者破解; 尽pipe它在HTML 4 Strict或XHTML 1 Strict中被弃用(因此不会被validation),但它自从3.2以来就是HTML的一部分,它正式成为HTML5的一部分,并且自从Netscape 3以来,它几乎适用于所有浏览器。

我已经validation了这种行为是与XHTML 1 Strict,XHTML 1 Transitional,HTML 4 Strict一起工作的,并且在没有指定DOCTYPE的“quirks模式”下工作,并且在所有情况下都可以使用Internet Explorer 7.0.5730.13。 我的testing用例由两个文件组成,在IIS 6上使用传统的ASP; 他们在这里被完整地转载,所以你可以自己validation这个行为。

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页面中embedded另一个文档。

如果要将表单提交给表单页面中的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的体验,特别是在file upload的情况下,在这种情况下,它变成强制提交表单,以便上传文件

iframe可以设置为0和0的宽度和高度,表单可以提交的目标设置为iframe,并提交表单之前打开一个加载对话框。 所以,它嘲笑一个Ajax控件,因为控件仍然保留在input表单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> 

我会想象你会dynamic生成一个窗体内的iframe,然后张贴。

以下是关于顶层页面的讨论。
JavaScript提交请求,如表单提交

您应该可以修改它来在iframe中创build表单。