使用表单定位iframe会导致打开新窗口

时间:2011-06-10 17:09:15

标签: jquery html google-chrome

我正在使用chrome v.12。

我有一个jquery调用,它会创建一个iframe

$(document).ready(function(){

$('<iframe />').appendTo('body').attr({'id': 'iframeUploader', 'name':'iframeUploader'}).hide();
});

当我使用表单上传时,chrome会打开一个新窗口而不是定位iframe

<form id="form1" name="form1" enctype="multipart/form-data" method="post" action="upload.php?productID=1074" target="iframeUploader">

有人能发现我做错了吗?我把头发拉出来了!

谢谢!

3 个答案:

答案 0 :(得分:6)

请在此处阅读:http://terminalapp.net/submitting-a-form-with-target-set-to-a-script-generated-iframe-on-ie/ 的确,在我改用这个之后:

 $('<iframe name="iframeUploader"/>').appendTo('body').attr({'id': 'iframeUploader'});

它奏效了。在IE8和FF3.6中试过它

答案 1 :(得分:2)

如果要静态设置表单的target属性(即在创建表单本身时)并将其设置为iframe,则会在新的选项卡/窗口中打开响应。

如果您在使用javascript / jQuery提交表单之前动态设置target属性,则会在同一窗口中将响应收到目标iframe

答案 2 :(得分:-1)

form target属性允许开发人员将表单定位到命名窗口或框架 - 我认为您不能以这种方式定位iframe - 并且已弃用。