1

内部プロジェクト用に xHR2 とファイル API を使用して HTML5 に AJAX ファイル アップローダーを実装しました。Firefox/Safari/Chrome のみをサポートする必要がありました。以下のリンクを参考にしました

  1. http://www.html5rocks.com/en/tutorials/file/xhr2/
  2. http://www.html5rocks.com/en/tutorials/dnd/basics/
  3. https://developer.mozilla.org/en-US/docs/Using_files_from_web_applications

現在、Internet Explorer 10 以下をサポートする必要があります。IE 10 は XHR2 をサポートしていますが、File API のサポートが不足しています。これらの API がサポートされていないことを検出する方法はありますか? API がサポートされていないことがわかった場合、IE に AJAX ファイルのアップロードを実装するにはどうすればよいですか?

jQueryやその他のライブラリではなく、Google Closure JSライブラリを使用しています。ライブラリの選択は変更できません。応答で jQuery などを使用してください。ただし、jQuery を使用するコード スニペットはまったく問題ありません。

4

3 に答える 3

3

おそらく、ファイル API が存在するかどうかを検出する最も簡単な方法は、

typeof File

File API をサポートするブラウザーでは、オブジェクトまたは関数を返す必要があります - Internet Explorer は戻りますundefined

フォールバックしてすべてのユーザーで機能させる方法について

私はこのツールhttps://github.com/valums/ajax-uploadを使用しました。これは、iframe を作成し、アップロードを iframe に投稿し、AJAX ファイルのアップロードをエミュレートします。すべて純粋な JavaScript で、ライブラリは必要なく、ずっと前からサポートしています。 IE6に

于 2013-01-04T08:14:12.567 に答える
2

最近、Google クロージャ ライブラリと一緒に使用するファイル アップローダに取り組んでいます。fine-uploaderライブラリーが良い出発点であることがわかりました。これはクロージャ ライブラリを使用して書かれたものではありませんが、基本的なガイドラインを提供してくれます。サポートされている場合は xhr を使用してファイルをアップロードし、サポートされていない場合はフォールバックして非表示の iframe に投稿を形成します。

私のコードでは、2 つのクラスを実装しました。1 つは を使用しXMLHttpRequestてファイルをアップロードし、もう 1 つはgoog.net.IframeIosendFromFormメソッドを使用してファイルをアップロードします。

于 2013-01-05T02:24:33.077 に答える
0

goog.net.iframeIoGoogle Closure Libraryのクラスを見てください。これは、フォームからファイル入力要素を取得して iFrame に投稿し、実際の XHR になくても、AJAX エクスペリエンスと同等のものを提供します。

実装方法に関する Google のドキュメントへのリンクは次のとおりです。

https://code.google.com/p/closure-library/source/browse/closure/goog/net/iframeio.js#48

于 2013-01-04T19:23:13.570 に答える