我正在使用iframe方法上传csv文件。我希望它能让我在正常的表格提交中没有页面的重定向。
HTML:
<section id=fileImport>
<form id="importForm" target="postiframe" name="Import" enctype="multipart/form-data">
<input name="import-input" id="importInput" type="file" />
<button id="importBtn" class="btn btn-large">Import</button>
</form>
</section>
的javascript:
var iframe = $('<iframe name="postiframe" id="postiframe" style="display: none" />');
this.$("#fileImport").append(iframe);
var form = $("#importForm");
form.attr("action", "import/upload");
form.attr("method", "post");
form.attr("enctype", "multipart/form-data");
form.attr("encoding", "multipart/form-data");
form.attr("target", "postiframe");
form.submit();
var self = this;
this.$("#postiframe").load(function () {
var iframeContents = $("#postiframe").get(0).contentWindow.document.body.innerHTML;
self.parseResponse(iframeContents);
});
enter code here
这是我第一次尝试使用这种iFrame方法。我认为在parseResponse中我可以把预先标记中返回的数据。
e.g。
<pre>{myData: "blah"}</pre>
我这样做是为了:
var re = new RegExp("<pre>(.*?)</pre>");
var matches = response.match(re);
这适用于Firefox。然后,当我在chrome中尝试它时,chrome会使用
等内容发回数据<pre style="width:....">{myData: "blah"}</pre>
我想知道是否有一种方法可以在没有预标记的情况下恢复数据,或者可以在不同的浏览器中解析它。我没有在IE 9上试过它,但我只能想象它比chrome&amp; Firefox浏览器。有什么想法吗?
使用这样的iframe上传仍在使用的数据吗? (我们必须支持IE 9,所以我不能使用html 5的东西。)
答案 0 :(得分:0)
跨域上传?
如果是这样,您需要一个重定向页面来接收来自查询字符串的结果。
如果没有,请不要使用iframe上传,http://jquery.malsup.com/form/,这里有一个插件帮助来发布表单异步。