2012-01-06 11 views
2

JavaScriptとHTMLでインタラクティブなファイルアップローダーを開発していますが、現在ドラッグしているファイルfilename(dragenterイベントをトリガーするファイル)にアクセスする必要があります。dragenterイベント中にファイル名を取得する

しかし、問題は、イベントdataTransferメンバには何もファイルが含まれていないと私は実際にはは、ドロップイベントがスローされる前にファイル名を知る必要があります。出来ますか?

ありがとうございます。

+0

どのブラウザをお使いですか? – robertc

+0

クロム16.0.912.75。 – mkroman

+1

[こちらはバグです](https://bugs.webkit.org/show_bug.cgi?id=44727)、[こちら](https://bugs.webkit.org/show_bug)もご承知ください。 cgi?id = 42872) – robertc

答えて

6

は、私はあなたがそれのためにローカル変数を宣言する必要が....とドラッグ開始が....それを殺すときにそれを初期化するために覚えているかもしれないと思うとき、ドラッグ終了...(dragendイベント/ドロップ)

"DragStart" .....(注:dragstartでは "event.dataTransfer.setData"を使用してdataTransferに任意の値を割り当てることができますが、DragEnter/DragOverではアクセスできません)

セキュリティ上の理由により "DragEnter"がdataTransfer.getData()にアクセスできないため... "onDrop"アクションでのみアクセス可能です.....

は、以下のリンクを参照してください。 を//データが起因して(クロスフレームのために)ここでは使用することはできません取得: http://msdn.microsoft.com/en-us/library/ie/ms536436(v=vs.85).aspx

// http://code.google.com/p/chromium/issues/detail?id=50009

Chorme のために動作しませんDragEnterイベント/ DragOver DragOverはでdataTransfer.getDataを使用

//dataTransfer.getDataは、セキュリティ上の理由のためのDROPでのみアクセス可能です.... http://code.google.com/p/chromium/issues/detail?id=2141

か、以下のリンクを確認することができます...それが役に立つかどうかを確認: http://weblog.bocoup.com/using-datatransfer-with-jquery-events/

MORE:あなたはまた、ブラウザのキャッシュにデータが保存されますのlocalStorage /のsessionStorageコールを、使用することができ、localStorageをクロスウィンドウ(ただし、同じブラウザ)で使用することができ 、のsessionStorageは、同じセッションののみアクセス可能です。あなたはdragstartで - >

localStorage.setItem("DraggedFileName",myFileName); 

あなたのDragEnterイベントでは - あなたのDropEventで>

var myFileName = undefined; 
if(localStorage.getItem("DraggedFileName")) 
myFileName = localStorage.getItem("DraggedFileName"); 

とdragendイベント - >

if(localStorage.getItem("DraggedFileName")) 
    localStorage.removeItem("DraggedFileName"); //Remove after Drop/DragEnd, clear it 

それが役に立てば幸い..: は、同じように何かをします..

+0

私はこれを理解しようと多くの時間を費やしました。私の結論は、それが立っているような仕様は愚かで愚かであるということです。詳細については、ここで私の説明(暴言)を読んでください:http://stackoverflow.com/questions/11927309/html5-dnd-datatransfer-setdata-or-getdata-not-working-in-every-browser-except-fi – Gup3rSuR4c

関連する問題