我正在尝试编写一个测试,检查我的dragstart事件监听器是否在e.dataTransfer上设置了属性。
我可以手动创建和发送MouseEvent:
var event = new MouseEvent('dragstart');
html[0].dispatchEvent(event);
但是event.dataTransfer为null所以我得到空引用异常。
我尝试手动设置属性:
event.dataTransfer = {};
我尝试使用属性描述符设置属性:
var event = new MouseEvent('dragstart');
Object.defineProperty(event, "dataTransfer", {
configurable: true,
writable: true,
value : {}
});
但两项都没有奏效。
答案 0 :(得分:-1)
这对我有用。
var dataTransferObj = { setData: function (val) { this.data = val }}
var event = new CustomEvent('dragover');
event.dataTransfer=dataTransferObj
target.dispatchEvent(event);