研究:表单定位iFrame以提交

时间:2011-08-19 16:26:14

标签: html ajax forms file-upload

我最初开始学习如何处理“ajax-ready文件上传”;我发现并理解了一个主要概念:它不可能作为ajax,但你可以提交一个表格,目标设置为隐藏的iFrame的id [1] 似乎通常被社区接受并与所有浏览器兼容。这是一个准确的评估吗?

我的问题是:这种方法存在哪些缺陷?因为如果没有,在我看来,每个“ajax-ready post”都可以用同样的方式完成。删除文件上传组件和这种方法相比,例如,jQuery.post()方法似乎具有相同的结果。

在我研究的所有问题和资源中,我只能找到处理我的初始问题的“解决方案”。对于定位iFrame的表单,我无法在任何地方找到任何类型的“专业版列表”或“此方法的陷阱”;如果您知道其中一个,请随时分享!

[1] HTML示例:

<form method="post" target="take_the_reload">
    ...
</form>
<iframe class="hide_me" id="take_the_reload" name="take_the_reload"></iframe>

很有责任,

Beez

参考资料:我使用过的几个资源:

  1. http://www.joshclarkson.net/blog/file-uploads-in-a-hidden-iframe-using-jquery/
  2. Firefox form targetting an iframe is opening new tab
  3. http://terminalapp.net/submitting-a-form-with-target-set-to-a-script-generated-iframe-on-ie/
  4. javascript: submit form in an iframe...help
  5. http://www.openjs.com/articles/ajax/ajax_file_upload/

1 个答案:

答案 0 :(得分:2)

当我第一次启动AJAX时(在jQuery和Prototype出现之前),我过去常常使用我的所有表单....只是将它们发布到隐藏的Iframe。这很简单,也没有痛苦。

form-post的缺点:

  • 这不是真正的“纯粹”AJAX(文件上传除外)。我确信结果中iframe中的所有DOM操作都比通过XHR获取响应慢。
  • 错误处理更加困难 - 您必须查看服务器在iframe中放置的内容
  • 事情正朝着基于JSON的数据处理方向发展,而单独的表单却没有
  • 有时你想在表单和服务器之间做一些“中间”的事情,比如某些字段映射或包含其他客户端数据