作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 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>
我想知道是否有一种方法可以在没有预标记的情况下取回数据,或者有一种方法可以在不同的浏览器之间解析它。我还没有在 IE 9 上尝试过,但我只能想象它比 chrome 和 firefox 更难。有什么想法吗?
现在还用这样的iframe上传数据吗? (我们必须支持 IE 9,所以我不能使用 html 5 的东西)。
最佳答案
跨域上传?
如果是这样,您需要一个重定向页面来接收查询字符串的结果。
如果没有,请勿使用iframe上传,http://jquery.malsup.com/form/ ,这是一个用于异步发布表单的插件。
关于javascript - iframe上传浏览器兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19968135/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!