1. mounted() {
  2. // 监听子页面想父页面的传参
  3. window.addEventListener('message',function(event){
  4. //此处执行事件
  5. console.log('监听到子页面的传参')
  6. console.log(event.data)
  7. })
  8. },
  1. let data = {
  2. type:1,
  3. code:200,
  4. data:this.dictionaryInspectionId //子页面传输数据过来了
  5. }
  6. window.parent.postMessage(data,'*')

父页面通过按钮向子页面传参,并监听子页面的传参

  1. <template>
  2. <div>
  3. <iframe ref="fIframe" class="iframeClass" src="http://*****:8081/" frameborder="0"></iframe>
  4. <div class="btn" @click="fClick">父页面传参</div>
  5. </div>
  6. </template>
  7. <script>
  8. export default {
  9. mounted() {
  10. // 监听子页面想父页面的传参
  11. window.addEventListener('message',function(event){
  12. //此处执行事件
  13. console.log('监听到子页面的传参')
  14. console.log(event.data)
  15. })
  16. },
  17. methods: {
  18. // 父页面处发向子页面传参
  19. fClick(){
  20. let data = {
  21. type:2,
  22. code:200,
  23. data:'父页面面传输数据过来了'
  24. }
  25. this.$refs.fIframe.contentWindow.postMessage(data,'*')
  26. },
  27. }
  28. }
  29. </script>
  30. <style >
  31. .btn{
  32. width: 100px;
  33. height:50px;
  34. text-align: center;
  35. line-height:50px;
  36. border: 1px solid #ccc;
  37. border-radius: 12px;
  38. position:fixed;top:0;left:0;
  39. }
  40. .iframeClass{
  41. width:100%;height:100vh;
  42. }
  43. </style>

子页面向父页面传参并监听父页面传参

  1. <template>
  2. <div>
  3. <div class="btn1" @click="sonClick">子页面处发</div>
  4. </div>
  5. </template>
  6. <script>
  7. export default {
  8. mounted() {
  9. // 监听父页面向子页面的传参
  10. window.addEventListener('message', (e) => {
  11. console.log('父页面传输过来参数')
  12. console.log(e.data)
  13. });
  14. },
  15. methods: {
  16. // 子页面处发向父页面传参
  17. sonClick(){
  18. let data = {
  19. type:1,
  20. code:200,
  21. data:'子页面传输数据过来了'
  22. }
  23. window.parent.postMessage(data,'*');
  24. },
  25. }
  26. }
  27. </script>
  28. <style >
  29. .btn1{
  30. width: 100px;
  31. height:50px;
  32. text-align: center;
  33. line-height:50px;
  34. border: 1px solid #ccc;
  35. border-radius: 12px;
  36. position:fixed;top:0;right:0;
  37. z-index:999999;
  38. }
  39. .iframeClass{
  40. width:100%;height:100vh;border:1px solid red;
  41. }
  42. </style>