在vue中使用Iframe嵌套问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在vue中使用Iframe嵌套问题相关的知识,希望对你有一定的参考价值。

参考技术A vue中嵌套iframe,将要嵌套的文件放在static下面:

<iframe src="../../../static/bear.html" width="300" height="300" frameborder="0" scrolling="auto"></iframe>

src可以使用相对路径,也可使用服务器根路径http:localhost:8088/…等:

<iframe src="https://www.baidu.com/" width="300" height="300" frameborder="0" scrolling="auto"></iframe>

iframe实现vue嵌套外部系统

实现目标:

  1. 外部系统相关配置放在配置文件中
  2. 外部系统渲染入口放在主系统中,由主系统router控制外部系统的加载
  3. 外部系统加载过程展示loading

相关代码:

// config.js
export default {
    collect: {
        staticAddress: \'http://127.0.0.1:9303\'
 },
 application: {
        staticAddress: \'http://127.0.0.1:9304\'
 }
};
// router.js
import config from \'./config.js\';
import DynamicComponent from \'./DynamicComponent.vue\';
{
     path: `${baseUrl}/collect`,
     name: \'collect\',
     props:config.collect,
     component: DynamicComponent
},
// DynamicComponent.vue
<template>
 <keep-alive> 
     <iframe ref="dynamicIframe"
     :src="staticAddress"
     frameborder="0"
     style="width:100%;height:100%;"
     @load="frameLoaded"
     />
 </keep-alive>
</template>
<script>
export default {
 name: "DynamicComponent",
 props: {
        staticAddress: {
            type: String,
            required: true
        }
 },
 beforeRouteEnter(to, from, next) {
        next(vm => {
            // element-ui loading效果
            vm.$showViewLoading();
        });
 },
 beforeDestroy() {
        this.$off(\'load\', this.frameLoaded);
 },
 methods: {
        frameLoaded() {
            this.$closeViewLoading();
        }
 }
};
</script>

以上是关于在vue中使用Iframe嵌套问题的主要内容,如果未能解决你的问题,请参考以下文章

vue中嵌套页面 iframe 标签

当使用iframe使用时出现多层的嵌套,想要从内部直接跳转到外部

记录一次vue 项目中使用 iframe 嵌套其他项目

在vue中使用iframe标签

将vue使用iframe嵌套至html中使用(页面交互传值)

vue-router内嵌iframe页面,回退异常