iframe.vue 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <template>
  2. <div class="ifrcon">
  3. <Header :params="params" :title="'111'" />
  4. <iframe allowfullscreen="true" ref="iframe" id="showifr" :src="url" frameborder="0" @load="onIframLoad"></iframe>
  5. </div>
  6. </template>
  7. <script>
  8. import Header from "./ui/Show.Header";
  9. export default {
  10. props:['url'],
  11. components:{Header},
  12. data(){
  13. return {
  14. params:''
  15. }
  16. },
  17. methods:{
  18. onIframLoad(){
  19. window.onmessage = e =>{
  20. if (e.data.source != "4dage") {
  21. return
  22. }
  23. if (e.data.event == "guide-rooms") {
  24. this.$bus.emit('guideRoomsData',e.data.params)
  25. }
  26. // if (e.data.event == "guide-status") {
  27. // }
  28. if (e.data.event == "action") {
  29. this.$bus.emit('currentMode',e.data.params)
  30. }
  31. if (e.data.event == "loaded") {
  32. this.params = e.data.params
  33. this.$refs.iframe.contentWindow.postMessage({
  34. source: "mingyuan",
  35. event: 'guide-rooms'
  36. },"*")
  37. }
  38. }
  39. }
  40. }
  41. }
  42. </script>
  43. <style lang="less" scoped>
  44. .ifrcon{
  45. width: 100%;
  46. height: 100%;
  47. >iframe{
  48. width: 100%;
  49. height: 100%;
  50. }
  51. }
  52. </style>