Bootstrap

vue页面中嵌入iframe 监听iframe 中事件

//vue组件中是个弹框

<template>
 <el-dialog title="编辑" :visible.sync="editDialog" center :fullscreen="true" append-to-body v-loading="loading">
      <iframe :src="iframeurl" frameborder="0" style="width:100%;" :height="height"></iframe>
 </el-dialog>
</template>

<script>
export default{
data(){
   return{
     iframeurl:"******"  //第三方页面地址
        }
     },
   mounted:{
     //监听iframe变化
        window.addEventListener('message', (eve) => {
        console.log(eve)
       })
 
   }
 
 }
</script>
 
//第三方页面 比如纯html  页面
<!DOCTYPE HTML>
<html>
<head>
   <title>Demo</title>
   <meta charset="utf-8">
   <style>
    
   </style>
</head>
<body>
<button id="btn">向vue组件发送数据</botton>
</body>
</html>
<script>
document.on("click","#btn",function(){
  window.parent.postMessage({  //参数是对象
           cmd: '***',
           params: {
             success: true              
           }
       }, '*');
})


</script>
;