DOM

DataTransfer.effectAllowed プロパティ

 編集:2022.10.20 by T.A.

[Edge]。→

ドラッグ操作で許可される効果を取得/指定します。

コピー操作は、ドラッグされるデータを現在の位置からドロップ位置にコピーすることを示すために使用されます。移動操作は、ドラッグされるデータを移動することを示すために使用され、リンク操作は、ソース位置とドロップ位置の間に何らかの形の関係または接続を作成することを示すために使用されます。

このプロパティは、dragstart イベントで設定して、ドラッグ ソースのドラッグ効果を設定する必要があります。dragenter および dragover のイベント ハンドラー内では、このプロパティは dragstart イベントで割り当てられた値に設定されるため、effectAllowed を使用してどの効果が許可されているかを決定することができます。

イベント dragstart 以外のイベントで effectAllowed に値を代入しても何の効果もありません。

構文
DataTransfer.effectAllowed
DataTransfer DataTransfer

文字列。許可されているドラッグ操作を表します。可能な値は以下の通りです。

none アイテムをドロップすることができません。
copy ソースアイテムのコピーを新しい場所に作成することができます。
copyLink コピーやリンク操作が許可されています。
copyMove コピーや移動操作が許可されています。
link ソースから新しい場所へのリンクを確立することができます。
linkMove リンクや移動の操作が許可されています。
move アイテムを新しい場所に移動することができます。
all すべての操作が許可されています。
uninitialized 効果が設定されていない場合の既定値で、 all と同等です。

effectAllowed に他の値を代入しても効果はなく、古い値が保持されます。

Internet Explorer では、値を小文字に変更します。従って、linkMovelinkmove になります。

dragstart イベントと effectAllowed

HTML:

<DIV id=IdTest contenteditable>ここにドロップ操作をしてみて…</DIV>
<SPAN id=IdLog></SPAN>

JavaScript:

function Job(eve){  //dragstart イベントの処理:
  D=eve;
  DA=eve.dataTransfer;  //=[object]:[object DataTransfer]。noneに変更しない場合の処理後の値。
詳細 //dropEffect=[string]:move //effectAllowed=[string]:uninitialized //items=[object]:[object DataTransferItemList] //types=[object]: //…
IdLog.innerHTML=IdLog.innerHTML+eve.dataTransfer.effectAllowed+" "; eve.dataTransfer.effectAllowed="none"; //設定。 } document.ondragstart=Job; //イベント割り当て。

effectAllowed が「uninitialized」だったのを「none」にしたら、ドラッグ移動できなくなった。


テスト