我的js文件中有以下代码
window.onload = function () {
var canvas = document.getElementById('canvas');
canvas.addEventListener('dragover', drag_over, false);
canvas.addEventListener('dragenter', drag_over, false);
canvas.addEventListener('drop', dropped, false);
}
在某个时候,我创建了一个像这样的可拖动元素
element.addEventListener('dragstart', dragstart, false);
我有这样的回调:
function dragstart(e) {
console.log("dragstart");
}
function dropped(e) {
console.log("dropped");
}
function drag_over(e) {
console.log("dragover");
e.preventDefault();
return false;
}
问题是该代码在chrome中可以正常工作,但在Firefox中不能正常工作。
在firefox中,将触发dragstart回调,但不会触发其余部分。无知:(
最佳答案
看来您必须在.setData()
函数中调用dragstart
才能使其真正起作用。
function dragstart(e) {
console.log("dragstart");
e.dataTransfer.setData('text/plain', 'dummy');
}
以下来自MDN documentation: