我有一个图库图库,可以将其拖到一个内容可编辑的div中。但是,当插入图像时,我不希望将图像添加到光标位置,而是希望添加锚链接。
这似乎很简单:
onDragStart = (event, obj) => {
let url = AnotherLib.getURL(obj);
event.dataTransfer.setData('text/html', `<a href="${url}">${obj.text}</a>`);
};
插入的元素将是一个锚链接。但是,我还需要一个调用组件方法的onClick侦听器。第一个想法是只传递onClick
或onclick
,但这似乎在插入元素时被删除了。
接下来我注意到https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Recommended_drag_types#node
您可以将.setData()
的类型设置为application/x-moz-node
,因此我将方法更改为:
onDragStart = (event, obj) => {
let url = AnotherLib.getURL(obj);
let el = document.createElement('a');
el.setAttribute('href', url);
el.innerText = obj.text;
//el.addEventListener('click', function(event) {...});
event.dataTransfer.setData('application/x-moz-node', el);
};
但是现在,我没有插入锚链接,而是要拖动图像元素。