vue3內(nèi)嵌iframe的傳參與接收參數(shù)代碼示例
項(xiàng)目場(chǎng)景:
當(dāng)項(xiàng)目a需要用到項(xiàng)目b中的某個(gè)模塊,如項(xiàng)目b中的支付模塊 與 項(xiàng)目a的支付模塊是通用的,可以使用iframe將項(xiàng)目b內(nèi)嵌在項(xiàng)目a中,達(dá)到代碼功能復(fù)用的效果。
前言
既然兩個(gè)項(xiàng)目中有共通的內(nèi)容 就少不了互相通信。核心的兩個(gè)方法是 傳值:postMessage() 和 接收值:addEventListener()。
一、內(nèi)嵌iframe
項(xiàng)目a代碼如下:
<template>
<div class="iframe" v-if="payShow">
<!--iframeUrl 需要內(nèi)嵌展示的url 傳值可以直接拼接在路徑后 如:https://xxx.com?data='需要傳的參數(shù)'-->
<iframe id="iframe" :src="iframeUrl" frameborder="0" style="width:100%; height: 100%;"></iframe>
</div>
</template>二、iframe傳參
此時(shí)項(xiàng)目a中內(nèi)嵌了iframe展示項(xiàng)目b,項(xiàng)目b中需要點(diǎn)擊關(guān)閉按鈕,將自己在項(xiàng)目a中關(guān)閉,這個(gè)時(shí)候需要項(xiàng)目b點(diǎn)擊事件觸發(fā)時(shí),將這個(gè)操作響應(yīng)給項(xiàng)目a,所以需要項(xiàng)目b給項(xiàng)目a傳參。使用方法:window.parent.postMessage() , 具體參數(shù)和使用詳細(xì)可以查看官網(wǎng):https://developer.mozilla.org/zh-CN/docs/Web/API/Window/postMessage
項(xiàng)目b代碼如下:
const handleBack = () => {
let data = {
judge: false,
}
// 傳參
window.parent.postMessage(data, '*')
}三、接收iframe參數(shù)
接收參數(shù)使用方法: addEventListener(事件名稱,執(zhí)行函數(shù),觸發(fā)類型) 用于向指定元素添加監(jiān)聽事件,配合removeEventListener() 方法來(lái)移除事件。項(xiàng)目a代碼如下:
onMounted(() => {
// message 該事件通過(guò)或者從對(duì)象(WebSocket, Web Worker, Event Source 或者子 frame 或父窗口)接收到消息時(shí)觸發(fā)
window.addEventListener('message',payEvent)
})
const payEvent=(event)=> {
if (event.data) {
payShow.value = event.data.judge
}
}
onUnmounted(() => {
window.removeEventListener('message',payEvent)
})
總結(jié)
iframe的傳參與接收參數(shù)到此完成,最后記得頁(yè)面關(guān)閉時(shí)移除監(jiān)聽事件。
到此這篇關(guān)于vue3內(nèi)嵌iframe的傳參與接收參數(shù)的文章就介紹到這了,更多相關(guān)vue3內(nèi)嵌iframe傳參內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vxe-table?實(shí)現(xiàn)?excel?選擇一個(gè)單元格拖拽自動(dòng)復(fù)制新的單元格(示例代碼)
vxe-table是一款強(qiáng)大的表格組件,支持Excel風(fēng)格的操作,通過(guò)鼠標(biāo)右下角的擴(kuò)展按鈕,用戶可以拖拽選擇單元格并自動(dòng)復(fù)制內(nèi)容到擴(kuò)展區(qū)域的所有單元格中,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2025-01-01
vue完美實(shí)現(xiàn)el-table列寬自適應(yīng)
這篇文章主要介紹了vue完美實(shí)現(xiàn)el-table列寬自適應(yīng),對(duì)vue感興趣的同學(xué),可以參考下2021-05-05
vue3實(shí)現(xiàn)CSS無(wú)限無(wú)縫滾動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了vue3實(shí)現(xiàn)CSS無(wú)限無(wú)縫滾動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06

