0

HTML 5 のドラッグ アンド ドロップ、特に dropeffect とeffectsallowed プロパティを理解するのに苦労しています。ドキュメントと例を調べましたが、まだよくわかりません。特に、データをページ内にドラッグし、一方でファイルをページ外からドラッグできるという事実は、私にとって物事を曖昧にします。

まず、ページ内の画像をドロップ領域にドラッグすると、DataTransfer オブジェクトの FileList が空になります。しかし、ページ外のファイルと同じように、ページ内の画像にもアクセスできないということでしょうか? (たとえば、プロパティを取得するか、FileReader にフィードします)

私が理解していない他のことは、dropEffectとeffectsAllowedです。それらは、setData および getData メソッドと組み合わせて機能しますか? またはページ外からドラッグされたファイルと組み合わせて機能しますか?

event.dataTransfer.dropEffect = ' move'を設定すると、ページ外のファイルが実際に移動され、古い場所に移動すると思います。ただし、dropEffect 文字列値を除いて、ページに何かをドラッグすると、移動/リンク/コピーの間に実際の違いは見られません。

4

1 に答える 1

0

うーん、まだ答えはありませんが、もう少し進みました。他の誰かがこれについて疑問に思っている場合に備えて:

dropEffectおよびeffectsAllowedプロパティは、明らかにドラッグ操作の視覚的な合図ですそれ以上でもそれ以下でもありません。つまり、カーソルのアイコンは、使用したエフェクトに応じて変化します。以下は、実際の動作を確認できる小さなスクリプトです: http://help.dottoro.com/ljffjemc.php

問題は、 effectsAllowedを複数の効果 (copymove など) に設定すると、Firefox (15) が標準のドロップ カーソルを使用することです。この動作は、執筆時点では、dropEffectで指定されたアイコンを使用するだけの Chrome では異なります。後者の方が論理的に思えるので、おそらく Firefox にはバグがあるのでしょう。

この視覚的な合図は、Web ページ内の要素とブラウザー外のファイルの両方で機能することがわかりました。

しかし、dropEffectをたとえば 'move' に設定しても、実際にファイルを移動することとは何の関係もありません。

于 2012-10-01T15:07:50.410 に答える