vue 給嵌套的iframe子頁面傳數據 postMessage


Vue組件下嵌套了一個不同域下的子頁面,iframe子頁面不能直接獲取到父頁面的數據,即使數據存在localStorage中,子頁面一樣是獲取不到的,所以只好使用postMessage傳數據:

<iframe src="http://127.0.0.1:8888/index.html" class="mapFrame" ref="mapFrame"></iframe>

父頁面發送數據參數:
<script>
    export default {
        mounted() {
            let mapFrame = this.$refs['mapFrame']
            if (mapFrame.attachEvent){  //兼容瀏覽器判斷
                mapFrame.attachEvent("onload", function(){ 
                    let iframeWin = mapFrame.contentWindow
                    iframeWin.postMessage(data,'*')
              //data傳遞的參數   *寫成子頁面的域名或者是ip
                })
            } else { 
                mapFrame.onload = function(){ 
                    let iframeWin = mapFrame.contentWindow
                    iframeWin.postMessage(data,'*')
                } 
            }
            
        }
    }
</script>
                    

子頁面接收參數:

<script>
  export default{
    mounted(){
      window.addEventListener('message',function(e){               
            console.log(e.origin,e.data)//子頁面接收參數
        })  
     }

}
    
</script>        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 vue中嵌套頁面(iframe) vue中嵌套頁面(iframe) vue使用route搭配iframe進行嵌套的頁面,在子頁面中,點擊跳轉到打開新的模塊子頁面。 postMessage vue iframe傳值