简体   繁体   English

如何使用填充属性dataTransfer创建事件?

[英]How to create event with filled property dataTransfer?

I have local html file with javascript code. 我有javascript代码的本地html文件。

I should cover drag & drop by tests. 我应该通过测试来拖放。

It uses only IE. 它只使用IE浏览器。

In javascript code event "drop" is caught and content of dataTransfer (e.dataTransfer.getData("Text")) is analysed. 在javascript代码事件中捕获“drop”并分析dataTransfer(e.dataTransfer.getData(“Text”))的内容。

In test I simulate event with next code: 在测试I中使用下一个代码模拟事件:

event = document.createEventObject();

Here event which contains dataTransfer == null is created. 这里创建了包含dataTransfer == null的事件。

Write is impossible, because property is read only. 写入是不可能的,因为属性是只读的。

target.fireEvent("ondrop", event);

Event is fired in javascript code, but dataTransfer is null. 事件在javascript代码中触发,但dataTransfer为null。

I should put some test element in dataTransfer. 我应该在dataTransfer中放入一些测试元素。

How can I resolve this problem? 我该如何解决这个问题?

You could try using the CustomEvent interface, I'm not sure if it works in IE though. 您可以尝试使用CustomEvent界面,但我不确定它是否适用于IE。

var event = new CustomEvent('build', { 'detail': elem.dataset.time });

https://developer.mozilla.org/en-US/docs/Web/API/document.createEvent#Adding_custom_data_.E2.80.93_CustomEvent https://developer.mozilla.org/en-US/docs/Web/API/document.createEvent#Adding_custom_data_.E2.80.93_CustomEvent

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM