以编程方式创建拖动事件时,dataTransfer为null

Ass*_*saf 7 html5 drag-and-drop data-transfer


我正在尝试创建一个dragEvent并在Chrome上使用以下代码以编程方式将其触发:

var ev = document.createEvent("MouseEvents");
ev.initEvent("dragstart");
Run Code Online (Sandbox Code Playgroud)

然后以这种方式触发它:

element.dispatchEvent(ev);
Run Code Online (Sandbox Code Playgroud)

元素具有可拖动属性。

该事件已成功调度。但是,在触发事件时-dataTransfer对象为null。即使当我尝试将其手动设置为有效的dataTransfer对象时,它仍然保持为null。

有任何想法吗?
谢谢

Olg*_*nko 6

不幸的是,目前似乎没有这样的方式来以编程方式创建 DataTransfer 对象。HTML5拖放界面的描述说:

虽然为了与其他事件接口保持一致,DragEvent 接口有一个构造函数,但它并不是特别有用。特别是,无法从脚本创建有用的 DataTransfer 对象,因为 DataTransfer 对象具有在拖放期间由浏览器协调的处理和安全模型

请在此处查看更多详细信息:http : //www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#the-dragevent-and-datatransfer-interfaces