1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
|
---
title: DataTransfer
slug: Web/API/DataTransfer
tags:
- API
- Glisser-deposer
translation_of: Web/API/DataTransfer
---
L'objet `DataTransfer` contient les données glissées au cours d'une opération de glisser-déposer. Il peut contenir un ou plusieurs éléments, du même type ou de types différents. Pour plus d'informations sur le glisser-déposer, voir [Glisser et déposer](/fr/docs/Glisser_et_d%C3%A9poser).
Cet objet est disponible depuis la propriété `dataTransfer` de tous les événements de glisser. Il ne peut pas être créé séparément.
## Aperçu des proprietés
<table class="standard-table">
<tbody>
<tr>
<td class="header">Propriété</td>
<td class="header">Type</td>
</tr>
<tr>
<td>
<code
><a href="/En/DragDrop/DataTransfer#dropEffect">dropEffect</a></code
>
</td>
<td>
<code><a href="/en/String">String</a></code>
</td>
</tr>
<tr>
<td>
<code
><a href="/En/DragDrop/DataTransfer#effectAllowed"
>effectAllowed</a
></code
>
</td>
<td>
<code><a href="/en/String">String</a></code>
</td>
</tr>
<tr>
<td>
<a href="/En/DragDrop/DataTransfer#files"><code>files</code></a>
</td>
<td>{{ domxref("FileList") }}</td>
</tr>
<tr>
<td>
<code><a href="/En/DragDrop/DataTransfer#mozCursor">mozCursor</a></code>
{{ non-standard_inline() }}
</td>
<td>
<code><a href="/en/String">String</a></code>
</td>
</tr>
<tr>
<td>
<code
><a href="/En/DragDrop/DataTransfer#mozItemCount"
>mozItemCount</a
></code
>
{{ non-standard_inline() }}
</td>
<td><code>unsigned long</code></td>
</tr>
<tr>
<td>
<a href="/En/DragDrop/DataTransfer#mozSourceNode"
><code>mozSourceNode</code></a
>
{{ non-standard_inline() }}
</td>
<td>{{ domxref("Node") }}</td>
</tr>
<tr>
<td>
<a href="/En/DragDrop/DataTransfer#mozUserCancelled"
><code>mozUserCancelled</code></a
>
</td>
<td>
<a href="/en/JavaScript/Reference/Global_Objects/Boolean"
><code>Boolean</code></a
>
</td>
</tr>
<tr>
<td>
<code><a href="/En/DragDrop/DataTransfer#types">types</a></code>
</td>
<td>
<code><a href="/en/DOMStringList">StringList</a></code>
</td>
</tr>
</tbody>
</table>
## Aperçu des méthodes
<table class="standard-table">
<tbody>
<tr>
<td>
<code
>void <a href="#addElement.28.29">addElement</a>(in
<a href="/en/XPCOM_Interface_Reference/nsIDOMElement">Element</a>
image)</code
>
</td>
</tr>
<tr>
<td>
<code
>void <a href="#clearData.28.29">clearData</a>([in
<a href="/en/String">String</a> type])</code
>
</td>
</tr>
<tr>
<td>
<code
><a href="/en/String">String</a>
<a href="#getData.28.29">getData</a>(in
<a href="/en/String">String</a> type)</code
>
</td>
</tr>
<tr>
<td>
<code
>void <a href="#setData.28.29">setData</a>(in
<a href="/en/String">String</a> type, in
<a href="/en/String">String</a> data)</code
>
</td>
</tr>
<tr>
<td>
<code
>void <a href="#setDragImage.28.29">setDragImage</a>(in
<a href="/en/XPCOM_Interface_Reference/nsIDOMElement"
>nsIDOMElement</a
>
image, in long x, in long y)</code
>
</td>
</tr>
<tr>
<td>
<code
>void <a href="#mozClearDataAt.28.29">mozClearDataAt</a>([in
<a href="/en/String">String</a> type, in unsigned long index])</code
>
</td>
</tr>
<tr>
<td>
<code
><a href="/en/XPCOM_Interface_Reference/NsIVariant">nsIVariant</a>
<a href="#mozGetDataAt.28.29">mozGetDataAt</a>(in
<a href="/en/String">String</a> type, in unsigned long index)</code
>
</td>
</tr>
<tr>
<td>
<code
>void <a href="#mozSetDataAt.28.29">mozSetDataAt</a>(in
<a href="/en/String">String</a> type, in
<a href="/en/XPCOM_Interface_Reference/NsIVariant">nsIVariant</a>
data, in unsigned long index)</code
>
</td>
</tr>
<tr>
<td>
<code
><a href="/en/StringList">StringList</a>
<a href="#mozTypesAt.28.29">mozTypesAt</a>([in unsigned long
index])</code
>
</td>
</tr>
</tbody>
</table>
## Propriétés
### dropEffect
L'effet utilisé, qui doit toujours être l'une des valeurs possibles de `effectAllowed`.
Pour les événements ` d``ragenter ` et `dragover`, la propriété `dropEffect` est initialisée en fonction des actions initiées par l'utilisateur. Ceci est spécifique à la plateforme, mais en général, l'utilisateur peut appuyer sur les touches de modification pour ajuster l'action souhaitée. Dans un gestionnaire d'événement ` d``ragenter ` et `dragover`, la propriété `dropEffect` peut être modifiée si l'action de l'utilisateur demandée n'est pas celle souhaitée.
Pour les évènements `dragstart`, `drag`, and `dragleave` events, `dropEffect` est initialisé à "none". Toute valeur peut être assignée à `dropEffect`, mais elle sera ignorée.
Pour les évènements `drop` et `dragend` , `dropEffect` est initialisé en fonction de l'action initiée, et correspond à la dernière valeur de `dropEffect` après le dernier événement `dragenter` ou `dragover`.
Valeurs possibles:
- **copy**: Une copie de l'élément source est faite au nouvel emplacement.
- **move**: Un élément est déplacé vers un nouvel emplacement.
- **link**: Un lien est établi depuis la source vers le nouvel emplacement.
- **none**: L'élément ne peut pas être déposé.
Attribuer une autre valeur n'a aucun effet et conserve l'ancienne valeur.
### effectAllowed
Indique les effets qui sont autorisés pour ce déplacer. Il peut être spécifié dans l'évènement `dragstart` pour définir les effets souhaités pour la source, et dans les événements `dragenter` et `dragover` pour définir les effets souhaités pour la cible. La valeur n'est pas utilisée pour d'autres événements.
Valeurs possibles:
- **copy**: Une copie de l'élément source peut être faite à son nouvel emplacement.
- **move**: Un élément peut être déplacé vers un nouvel emplacement.
- **link**: Un lien peut être établi vers la source depuis le nouvel emplacement.
- **copyLink**: Une opération copy ou link est autorisée.
- **copyMove**: Une opération copy ou move est autorisée.
- **linkMove**: Une opération link ou move est autorisée.
- **all**: Toutes les opérations sont autorisées.
- **none**: l'élément ne peut être déposé.
- **uninitialized**: la valeur par défaut lorsque l'effet n'a pas été spécifié, ce qui équivaut à all.
Attribuer une autre valeur n'a aucun effet et conserve l'ancienne valeur.
### files
Contient une liste de tous les fichiers locaux disponibles sur le transfert de données. Si le glisser n'implique pas de fichiers, cette propriété est une liste vide. Un accès à un index invalide sur le {{ domxref("FileList") }} spécifié par cette propriété renvoie `null`.
#### Exemple
Cet exemple retourne la liste des fichiers traînée dans la fenêtre du navigateur: <http://jsfiddle.net/9C2EF/>
### types
Contient une liste des types de format des données stockées pour le premier élément, dans le même ordre oú les données ont été ajoutées. Une liste vide sera retournée si aucune donnée n'a été ajoutée.
L'état du curseur au cours d'un glisser. Cette propriété est surtout utilisée pour contrôler le curseur au cours d'un glisser d'onglet.
> **Note :** Cette méthode n'est actuellement implémentée que sur Windows.
#### Valeurs possibles
- `auto`
- : Utilise le comportement par défaut du système.
- `default`
- : Utilise le comportement par défaut de Gecko, qui consiste à utiliser une flèche pour curseur au cours d'un glisser.
> **Note :** Si vous spécifiez une valeur autre que "default", "auto" est supposé.
### mozItemCount
Le nombre d'éléments glissés.
> **Note :** Cette propriété est spécifique a Gecko.
### mozSourceNode
le {{ domxref("Node") }} au dessus duquel le curseur de la souris se trouvait lorsque le bouton a été pressé pour initialiser le glisser. Cette valeur est nulle pour un glisser externe, ou si l'appelant ne peut pas accéder au nœud.
> **Note :** Cette propriété est spécifique a Gecko.
### mozUserCancelled
Cette propriété s'applique uniquement à l'événement `dragend`, et est positionnée à `true` si l'utilisateur a annulé le glisser en appuyant sur la touche échappe. Elle est positionnée à `false` dans les autres cas, y compris si le glisser a échoué pour toute autre raison, par exemple en raison d'un déposer sur un emplacement non valide. Cette propriété n'est pas encore implémenté sous Linux.
> **Note :** Cette propriété est spécifique a Gecko.
## Methods
### addElement()
Spécifie la source du glisser. Ceci est rarement utilisé, mais a pour effet de modifier la cible des événements `drag` et `dragend`. La cible par défaut est le nœud qui est glissé.
void addElement(
in Element element
);
#### Parametres
- `element`
- : L'élément à ajouter.
### clearData()
Supprime les données associées au type spécifié. L'argument type est facultatif. Si le type est vide ou non spécifié, les données associées à tous les types sont supprimées. Si les données pour le type spécifié n'existent pas, ou le transfert de données ne contient pas de données, cette méthode n'aura aucun effet.
void clearData(
[optional] in String type
);
#### Parametres
- `type`
- : The type of data to remove.
### getData()
Récupère les données du type spécifié, ou une chaîne vide si les données de ce type n'existe pas ou le transfert de données ne contient aucune donnée.
Une erreur de sécurité se produira si vous tentez de récupérer des données lors d'un glisser qui a été spécifié à partir d'un domaine différent ou auquel l'appelant n'a pas accès. Ces données ne seront disponibles qu'à l'issue du déposer au cours d'un événement drop.
void getData(
in String type
);
#### Parametres
- `type`
- : Le type de donnée à récupérer.
### setData()
Définit une donnée pour le type spécifié. Si des données pour le type n'existe pas, elle est ajoutée à la fin, de telle sorte que le dernier élément dans la liste des types sera le nouveau format. Si une donnée pour le type existe déjà, la donnée existante est remplacée à la même position. C'est-à-dire que l'ordre de la liste des types ne change pas lors du remplacement de la donnée d'un même type.
void setData(
in String type,
in String data
);
#### Parametres
- `type`
- : Le type de la donnée à ajouter.
- `data`
- : La donnée à ajouter.
### setDragImage()
Définit l'image à utiliser pour un glisser, si une image personnalisée est souhaitée. Cette méthode est rarement utilisée, dans la mesure oú une image par défaut est créée à partir du nœud glissé.
Si le nœud est un élément HTML img, un élément canvas HTML ou un élément d'image XUL, la donnée image est utilisée. Sinon, l'image doit être un nœud visible et l'image utilisée pendant le glisser est créée à partir de ce noeud. Si l'image est null, toute image personnalisé est effacée et la valeur par défaut est utilisée à la place.
Les coordonnées spécifient le décalage à l'intérieur de l'image spécifiant la position du curseur de la souris. Pour centrer l'image, par exemple, utiliser des valeurs qui sont la moitié de la largeur et de la hauteur de l'image.
void setDragImage(
in Element image,
in long x,
in long y
);
#### Parametres
- `image`
- : Un élément à utiliser comme image pendant le glisser
- `x`
- : Décalage horizontal à l'intérieur de l'image.
- `y`
- : Décalage vertical à l'intérieur de l'image.
### mozClearDataAt()
Supprime les données associées au format pour un élément à l'index spécifié. L'index est compris entre zéro et le nombre d'éléments moins un.
Si le dernier format de l'élément est supprimé, l'élément entier est retiré, réduisant `mozItemCount` par un.
Si la liste `format` est vide, alors les données associées à tous les formats sont supprimées. Si le format n'est pas trouvé, alors cette méthode n'a aucun effet.
> **Note :** Cette méthode est spécifique à Gecko.
void mozClearDataAt(
[optional] in String type,
in unsigned long index
);
#### Parametres
- `type`
- : Le type de la donnée à supprimer.
- `index`
- : L'index de la donnée à supprimer.
### mozGetDataAt()
Récupère les données associées au format donné pour un élément à l'index spécifié, ou null si elle n'existe pas. L'indice devrait être compris entre zéro et le nombre d'éléments moins un.
> **Note :** Cette méthode est spécifique à Gecko.
nsIVariant mozGetDataAt(
[optional] in String type,
in unsigned long index
);
#### Parametres
- `type`
- : Le type de donnée à récupérer.
- `index`
- : L'indice de la donnée à récupérer.
### mozSetDataAt()
Un transfert de données peut stocker plusieurs éléments, chacun à un index commençant à zéro. ` mozSetDataAt(``) ` ne peut être appelé qu'avec un index inférieur à `mozItemCount,` auquel cas un élément existant est modifié, ou égal à `mozItemCount,` auquel cas un nouvel élément est ajouté, et `mozItemCount` est incrémenté de un.
Les données doivent être ajoutées par ordre de préférence, avec le format le plus spécifique ajouté en premier et le format moins spécifique ajouté en dernier. Si la donnée du format spécifié existe déjà, elle est remplacée dans la même position que la donnée précédente.
La donnée doit être une chaîne, ou un type primitif booléen, ou un type numérique (qui sera converti en une chaîne), ou une [nsISupports](/fr/docs/XPCOM_Interface_Reference/nsISupports).
> **Note :** Cette méthode est spécifique à Gecko.
void mozSetDataAt(
[optional] in String type,
in nsIVariant data,
in unsigned long index
);
#### Parametres
- `type`
- : Le type de donnée à ajouter.
- `data`
- : La donnée à ajouter.
- `index`
- : L'index de la donnée à ajouter.
### mozTypesAt()
Contient une liste des types de format des données qui sont stockées pour un élément à l'index spécifié. Si l'index n'est pas dans compris entre 0 et le nombre d'éléments moins un, une liste de chaîne vide est retournée.
> **Note :** Cette méthode est spécifique à Gecko.
nsIVariant mozTypesAt(
in unsigned long index
);
#### Parameters
- `index`
- : L'index de la donnée pour laquelle récupérer les types.
## Voir Aussi
[Drag and Drop](/En/DragDrop/Drag_and_Drop)
|