LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

鼠標(biāo)事件mouseup與iframe

freeflydom
2024年6月29日 11:4 本文熱度 1329

iframe是一個(gè)獨(dú)立的文檔樹,是一個(gè)沙箱,鼠標(biāo)事件終止于iframe文檔根部,無法冒泡到外層。

復(fù)現(xiàn)

最近寫dooringx-lib時(shí)遇到了個(gè)巨大難題。

我試著在編輯器的畫布中使用iframe,然后iframe中做一個(gè)可以拖拽選擇的效果,這時(shí)這個(gè)坑就出現(xiàn)了。

也就是我在iframe中按住鼠標(biāo)左鍵,然后移出iframe后松開鼠標(biāo)左鍵,此時(shí),父頁面無法監(jiān)聽到mouseup事件。

于是我還整了很多騷操作,一開始我覺得可能是preventdefault搞得鬼,把所有preventdefault都刪了。發(fā)現(xiàn)不行。

然后在iframe里用postmessage告訴父頁面左鍵點(diǎn)擊,讓父頁面dispatch一個(gè)假的mousedown事件,發(fā)現(xiàn)還是不行。(沒法傳遞真的mouseEvent事件,因?yàn)闀?huì)報(bào)錯(cuò):Failed to execute ‘postMessage’ on ‘Window’: MouseEvent object could not be cloned)

解決方案

在我研究半天后,找到以下2個(gè)方案:

1、創(chuàng)建iframe時(shí)就給個(gè)遮罩,相當(dāng)于所有操作都在遮罩上完成。缺點(diǎn)就是iframe里自己本來有很多的事件就無法觸發(fā)!所以如果這么操作,那么就要把事件都改到遮罩上,然后給iframe里面進(jìn)行通信。

2、使用mousemove事件。我發(fā)現(xiàn)雖然沒有觸發(fā)mouseup但是能觸發(fā)mousemove,既然可以監(jiān)聽到iframe里的點(diǎn)擊,那么再加上mousemove,在限定條件下就可以完成想要的效果。

如果時(shí)間緊迫還是用第二種方式,如果時(shí)間充足就使用第一種方式,畢竟除了up外,還可能有別的iframe坑需要填。



版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接和本聲明。

原文鏈接:https://blog.csdn.net/yehuozhili/article/details/118914339



該文章在 2024/6/29 11:04:49 編輯過
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
伊人久久大杳蕉综合丁香五月 | 亚洲中文字幕另类小说 | 亚洲а∨天堂久久精品高清 | 亚洲中文字幕夜夜精品 | 伊人成国产中国 | 亚洲日本欧美在线不卡黑配白 |