2013-11-14 2 views
1

Я загружаю файл 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).

ответ

0

Переслать домен через домен?

Если это так, вам нужна страница переадресации для получения результата из строки запроса.

Если нет, не используйте загрузку iframe, http://jquery.malsup.com/form/, здесь приведена подсказка для отправки формы async.

Смежные вопросы