Я загружаю файл csv, используя подход iframe. Я надеялся, что это позволит мне не перенаправлять страницу на обычную форму.iframe загрузить браузер совместимость
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>{myData: "blah"}</pre>
Я делал это с:
var re = new RegExp("<pre>(.*?)</pre>");
var matches = response.match(re);
И это работало на Firefox. Потом, когда я попробовал его в хром, хром отправляет данные обратно с вещами, как
<pre style="width:....">{myData: "blah"}</pre>
мне было интересно, если есть способ, чтобы получить данные обратно без предварительных тегов, или способ, возможно, разобрать его среди разные браузеры. Я не пробовал это на IE 9, но могу только представить, что это сложнее, чем хром & firefox. Есть предположения?
Использует iframe, как это, для загрузки данных, которые все еще используются? (Мы должны поддерживать IE 9, поэтому я не могу использовать материал html 5).