所以我有 2 個(gè)項(xiàng)目和一個(gè)針對(duì)這種情況的第三方應(yīng)用程序:app - 主應(yīng)用程序 gwt 庫(kù) - 我為可重復(fù)使用的 GWT 組件構(gòu)建的庫(kù)葡萄 js - javascript 中的拖放 html 編輯器我在grapesjs 庫(kù)周圍創(chuàng)建了一個(gè)gwt 包裝器,在gwt 庫(kù)游樂(lè)場(chǎng)中,它工作得很好。但是,當(dāng)我將此庫(kù)導(dǎo)入主應(yīng)用程序時(shí),我發(fā)現(xiàn)將塊拖到畫布上不起作用。我盡可能地深入研究,發(fā)現(xiàn)瀏覽器的“拖動(dòng)”事件沒(méi)有觸發(fā)。為了更進(jìn)一步,我進(jìn)入了不同網(wǎng)站上的瀏覽器控制臺(tái),能夠?qū)⑼蟿?dòng)偵聽器附加到任何元素,并且它們會(huì)正確觸發(fā)。你甚至可以在堆棧上嘗試它。只需檢查一個(gè)元素,更改為具有draggable="true"并附加一個(gè)偵聽器:$0.addEventListener($0, (event) => { console.log('drag event firing'); });然后嘗試拖動(dòng)元素,控制臺(tái)日志將觸發(fā)。好吧,如果你在我的應(yīng)用程序中做同樣的事情(任何元素,不僅僅是在葡萄組件中),它就不起作用。因此,似乎在全局級(jí)別以某種方式禁用了拖動(dòng)事件。至少,這是我最好的猜測(cè)。我的終極問(wèn)題是:什么會(huì)導(dǎo)致本機(jī)“拖動(dòng)”事件不會(huì)在全局級(jí)別(在 GWT 或純 Javascript 中)觸發(fā)?我嘗試了 Chrome 和 FF,它們的行為都一樣,所以我不認(rèn)為這是瀏覽器的問(wèn)題。我不知道我的哪些代碼對(duì)此有用,但如果有人問(wèn),我可以發(fā)布一些內(nèi)容。
瀏覽器拖動(dòng)事件未在 GWT 項(xiàng)目中觸發(fā)
江戶川亂折騰
2021-12-23 16:48:38