DataTransfer - передача данных в операциях драгндроп мышью

class DataTransfer
dropEffect

Это свой­ст­во оп­ре­де­ля­ет тип пе­ре­да­чи дан­ных, пред­став­лен­ных этим объ­ек­том.

Свой­ст­во долж­но иметь од­но из зна­че­ний: «none», «copy», «move» или «link». Как пра­ви­ло, объ­ект-при­ем­ник ус­та­нав­ли­ва­ет это свой­ст­во в об­ра­бот­чи­ке со­бы­тия «drag­enter» или «dragover». Зна­че­ние это­го свой­ст­ва мо­жет так­же за­ви­сеть от кла­виш мо­ди­фи­ка­то­ров, удер­жи­вае­мых поль­зо­ва­те­лем в про­цес­се бук­си­ров­ки, но это во мно­гом за­ви­сит от плат­фор­мы.

effectAllowed

Это свой­ст­во оп­ре­де­ля­ет до­пус­ти­мую ком­би­на­цию опе­ра­ций пе­ре­ме­ще­ния из чис­ла: ко­пи­ро­ва­ние, пе­ре­ме­ще­ние и соз­да­ние ссыл­ки. Это свой­ст­во обыч­но ус­та­нав­ли­ва­ет­ся ис­точ­ни­ком в от­вет на со­бы­тие «dragstart». До­пус­ти­мы­ми зна­че­ния­ми яв­ля­ют­ся: «none» (ни од­на), «copy» (ко­пи­ро­ва­ние), «copyLink» (ко­пи­ро­ва­ние и соз­да­ние ссыл­ки), «copyMove» (ко­пи­ро­ва­ние и пе­ре­ме­ще­ние), «link» (соз­да­ние ссыл­ки), «linkMove» (соз­да­ние ссыл­ки и пе­ре­ме­ще­ние), «move» (пе­ре­ме­ще­ние) и «all»(все).

files

Ес­ли пе­ре­ме­щае­мые дан­ные яв­ля­ют­ся од­ним или бо­лее фай­ла­ми, это свой­ст­во бу­дет ссы­лать­ся на мас­сив или на объ­ект, по­доб­ный мас­си­ву, со­дер­жа­щий объ­ек­ты File.

types

Это объ­ект, по­доб­ный мас­си­ву, со­дер­жа­щий стро­ки, ко­то­рые оп­ре­де­ля­ют MIME-ти­пы дан­ных, со­хра­няе­мых в объ­ек­те DataTransfer (ус­та­нав­ли­ва­ет­ся ме­то­дом set­ Data(), ес­ли ис­точ­ник рас­по­ла­га­ет­ся в бро­узе­ре, или ка­ким-ли­бо дру­гим ме­ха­низ­мом, ес­ли ис­точ­ник на­хо­дит­ся за пре­де­ла­ми бро­узе­ра). Объ­ект, по­доб­ный мас­си­ву, хра­ня­щий ти­пы, дол­жен иметь ме­тод contains() для про­вер­ки при­сут­ст­вия оп­ре­де­лен­ной стро­ки. Од­на­ко не­ко­то­рые бро­узе­ры пе­ре­да­ют в этом свой­ст­ве ис­тин­ный мас­сив, и в этом слу­чае для про­вер­ки мож­но ис­поль­зо­вать ме­тод indexOf().

addElement(Element element)

Со­об­ща­ет бро­узе­ру эле­мент element, ко­то­рый мож­но ис­поль­зо­вать для вос­про­из­ве­де­ния ви­зу­аль­но­го эф­фек­та, ко­то­рый бу­дет на­блю­дать поль­зо­ва­тель во вре­мя бук­си­ров­ки. Обыч­но этот ме­тод вы­зы­ва­ет­ся бук­си­руе­мым ис­точ­ни­ком, но он мо­жет быть реа­ли­зо­ван или иметь хоть ка­кой-ни­будь эф­фект не во всех бро­узе­рах.

clearData([string format])

Уда­ля­ет все дан­ные в фор­ма­те format, ко­то­рые бы­ли до­бав­ле­ны ме­то­дом setData().

getData(string format)

Воз­вра­ща­ет от­бук­си­ро­ван­ные дан­ные в фор­ма­те format. Ес­ли в ар­гу­мен­те format пе­ре­да­но зна­че­ние «text» (без уче­та ре­ги­ст­ра сим­во­лов), воз­вра­ща­ют­ся дан­ные в фор­ма­те «text/plain». А ес­ли пе­ре­да­но зна­че­ние «url» (без уче­та ре­ги­ст­ра сим­во­ лов), воз­вра­ща­ют­ся дан­ные в фор­ма­те «text/uri-list». Этот ме­тод вы­зы­ва­ет­ся при­ ем­ни­ком в от­вет на со­бы­тие «drop» в кон­це опе­ра­ции бук­си­ров­ки.

setData(string format, string data)

При­ни­ма­ет дан­ные data для пе­ре­да­чи и MIME-тип этих дан­ных в ар­гу­мен­те format.

Ис­точ­ник вы­зы­ва­ет этот ме­тод в от­вет на со­бы­тие «dragstart» в на­ча­ле опе­ра­ции бук­си­ров­ки. Он не мо­жет вы­зы­вать­ся из ка­ко­го-ли­бо дру­го­го об­ра­бот­чи­ка со­бы­тий. Ес­ли ис­точ­ник спо­со­бен пред­ста­вить дан­ные бо­лее чем в од­ном фор­ма­те, он мо­жет вы­звать этот ме­тод не­сколь­ко раз, что­бы оп­ре­де­лить зна­че­ния для ка­ж­до­го под­дер­жи­вае­мо­го фор­ма­та.

setDragImage(Element image, long x, long y)

Оп­ре­де­ля­ет изо­бра­же­ние image (обыч­но эле­мент <img>), ко­то­рое долж­но ото­бра­жать­ся как ви­зу­а ль­ное пред­став­ле­ние бук­си­руе­мых дан­ных. Ар­гу­мен­ты x и y оп­ре­де­ля­ют сме­ще­ние ука­за­те­ля мы­ши от­но­си­тель­но изо­бра­же­ния. Этот ме­тод мо­жет вы­зы­вать­ся толь­ко бук­си­руе­мым ис­точ­ни­ком, в от­вет на со­бы­тие «dragstart».