将数据拖出 HTML 元素
Adobe AIR 1.0 和更高版本
默认行为允许以拖动方式复制 HTML 页面中的大部分内容。可以使用 CSS 属性 -webkit-user-select 和 -webkit-user-drag 来控制允许拖动的内容。
在 dragstart 事件的处理函数中覆盖默认的拖出行为。调用事件对象的 dataTransfer 属性的 setData() 方法,以便将您自己的数据放入拖动动作。
若要指示在不依赖默认行为时源对象支持的拖动效果,请设置为 dragstart 事件调度的事件对象的 dataTransfer.effectAllowed 属性。您可以选择任意效果组合。例如,如果源元素既支持复制 效果,也支持链接 效果,则请将此属性设置为 "copyLink"。
设置拖动的数据
使用 dataTransfer 属性在 dragstart 事件的处理函数中为拖动动作添加数据。使用 dataTransfer.setData() 方法将数据放到剪贴板上,同时传入 MIME 类型和要传输的数据。
例如,如果应用程序中有一个 ID 为 imageOfGeorge 的图像元素,则可以使用下面的 dragstart 事件处理函数。此示例以多种数据格式添加 George 照片的表示形式,从而增加了其他应用程序能够使用拖动的数据的可能性。
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));
}
注: 调用 dataTransfer 对象的 setData() 方法时,默认拖放行为不会添加任何数据。