浏览器拖动事件未在 GWT 项目中触发

Browser drag event not firing in GWT project

所以我有 2 个项目和一个针对这种情况的第三方应用程序:

app - 主应用 gwt 库 - 我为可重用 GWT 组件构建的库 grapesjs - javascript

中的拖放 html 编辑器

我在 grapesjs 库和 gwt 库操场上创建了一个 gwt 包装器,它工作得很好。但是,当我将这个库导入主应用程序时,我发现将块拖到 canvas 上不起作用。

我尽可能深入地研究了这个问题,发现浏览器 'drag' 事件没有触发。为了更进一步,我进入了不同网站的浏览器控制台,并能够将拖动监听器附加到任何元素,它们会正确触发。您甚至可以在堆栈上尝试。只需检查一个元素,更改为 draggable="true" 并附加一个侦听器:

[=10=].addEventListener([=10=], (event) => { console.log('drag event firing'); });

然后尝试拖动元素,控制台记录将触发。好吧,如果你在我的应用程序中做同样的事情(任何元素,不仅仅是在葡萄组件中),它就不起作用。因此,拖动事件似乎在全球范围内以某种方式被禁用。至少,这是我最好的猜测。我的最终问题是:

什么会导致本机 'drag' 事件不在全局级别触发(在 GWT 或普通 Javascript 中)?

我试过 Chrome 和 FF,它们的行为相同,所以我认为这不是浏览器问题。我不知道我的哪些代码对此有用,但如果有人问我,我可以 post 一些东西。

我终于明白问题出在哪里了。要笼统地回答这个问题,您可以在 index.html:

中禁用所有类型的拖动事件
<body ondragstart="return false;" ondrop="return false">
</body>

删除这些属性让拖动事件再次正常工作。