iframe 上传浏览器兼容性
iframe upload browser compatibility
我正在使用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中,我可以只获取pre标签中返回的数据。
例如
<pre>{myData: "blah"}</pre>
我这样做的时候是:
var re = new RegExp("<pre>(.*?)</pre>");
var matches = response.match(re);
这对Firefox有效。 然后当我在 chrome 中尝试时,chrome 会用类似的东西发回数据
<pre style="width:....">{myData: "blah"}</pre>
我想知道是否有办法在没有pre标签的情况下取回数据,或者是否有办法在不同的浏览器之间解析它。 我还没有在IE 9上尝试过,但我只能想象它比chrome和firefox更难。 有什么想法吗?
使用这样的 iframe 上传数据是否仍在使用? (我们必须支持IE 9,所以我不能使用html 5的东西)。
跨域上传?
如果是这样,则需要重定向页面才能从查询字符串接收结果。
如果没有,请不要使用 iframe 上传,http://jquery.malsup.com/form/,这里有一个插件帮助来异步发布表单。
相关文章:
- 三js浏览器兼容性
- 为什么不是't my css `content:`在多个浏览器中工作,并总体上提高跨浏览器兼容性
- 浏览器兼容性/支持较新版本
- DOM 操作、向后兼容性和跨浏览器问题
- 脚本链接格式以实现跨浏览器兼容性
- IE-9面临浏览器兼容性问题
- 弹出式浏览器兼容性
- 如何以最大的兼容性检测桌面和移动浏览器的宽度
- 浏览器兼容性jquery触发器
- Ipad的safari浏览器中window.showModalDialog()的兼容性问题
- 跨浏览器兼容性 href 和按钮
- 浏览器兼容性问题
- iframe 上传浏览器兼容性
- 浏览器兼容性问题 - 无法在 IE 上运行
- GWT如何为每个浏览器提供正确的Javascript代码,例如执行i18n和浏览器兼容性
- 一组图形的Javascript放大镜 - 跨浏览器兼容性
- JavaScript 浏览器兼容性问题
- 在浏览器环境之外充分实现WebGL兼容性所需的最小功能是什么?
- 如何在没有jQuery的情况下处理Ajax浏览器兼容性
- HTML Web 浏览器兼容性(IE8、Chrome)