Il comportamento predefinito consente di copiare tramite trascinamento la maggior parte del contenuto in una pagina HTML. È possibile controllare il contenuto consentito per trascinarlo mediante proprietà CSS
-webkit-user-select
e
-webkit-user-drag
.
Sostituite il comportamento predefinito del trascinamento verso l'esterno nel gestore per l'evento
dragstart
. Chiamate il metodo
setData()
della proprietà
dataTransfer
dell'oggetto evento al fine di inserire i dati nel movimento di trascinamento.
Per indicare quali effetti di trascinamento supporta un oggetto source quando non ci si affida al comportamento predefinito, impostate la proprietà
dataTransfer.effectAllowed
dell'oggetto evento inviato per l'evento
dragstart
. È possibile scegliere qualsiasi combinazione di effetti. Ad esempio, se un elemento source supporta sia effetti
copia
e
collegamento
, impostare la proprietà su
"copyLink"
.
Impostazione dei dati trascinati
Aggiungete i dati per il movimento di trascinamento nel gestore per l'evento
dragstart
con la proprietà
dataTransfer
. Utilizzate il metodo
dataTransfer.setData()
per inserire i dati negli Appunti, passando nel tipo MIME e i dati da trasferire.
Ad esempio, se nell'applicazione vi era un elemento immagine, con l'id
imageOfGeorge
, è possibile utilizzare il seguente gestore eventi dragstart. Questo esempio aggiunge rappresentazioni di un'immagine di George in numerosi formati di dati che aumenta la probabilità di altre applicazioni di poter utilizzare i dati trascinati.
function dragStartHandler(event){
event.dataTransfer.effectAllowed = "copy";
var dragImage = document.getElementById("imageOfGeorge");
var dragFile = new air.File(dragImage.src);
event.dataTransfer.setData("text/plain","A picture of George");
event.dataTransfer.setData("image/x-vnd.adobe.air.bitmap", dragImage);
event.dataTransfer.setData("application/x-vnd.adobe.air.file-list",
new Array(dragFile));
}
Nota:
quando si chiama il metodo
setData()
dell'oggetto
dataTransfer
, nessun dato viene aggiunto dal comportamento predefinito di trascinamento.
|
|
|