画布中的拖拽事件不会在 Firefox 上触发

dragover event in canvas doesn't fired on firefox

本文关键字:Firefox 布中 事件      更新时间:2023-09-26

我想做的是一个面板来添加你的图像,可以旋转、缩放、移动和裁剪。用户应该能够通过拖动来移动图像。

该应用程序在Chrome,IE,Opera和Safari中运行良好,但由于某种原因,拖拽在Firefox上不起作用。调试代码我看到事件dragover未触发,但控制台未显示任何错误,所以我真的不知道出了什么问题。

这是我的演示

根据 MDN 的拖动操作文档,您需要setData DragStart事件的 dataTransfer 属性。

在你的例子中,函数CanvasMouseDown(e)#picture DragStart的事件处理程序,所以你应该在该函数的某个地方调用:

e.dataTransfer.setData( datatype, datacontent );

下面,我更新了您的示例以设置text/plain,这对于"只是让它工作"就足够了,因为您正在拖放在后一种情况下,设置image/xxx xxx是适当格式的地方会更有意义(例如 pngjpeg)。

工作代码。(使用 Firefox 25.0.1 验证,Win 7 SP 1。