前言

在前端开发过程中,往原有页面中嵌入新的页面的需求也是比较常见的需求操作,尤其是在比较复杂的必须要用嵌套的场景下。前端中使用嵌套的时候,需要用到的就是iframe标签,通过该标签可以规定一个内联框架,然后放入需要嵌套的新页面即可。本篇博文来分享一下关于iframe的使用方法,尤其是对于初级开发者来说尤为重要。

一、iframe

1、定义和使用

<iframe> 标签规定一个内联框架,一个内联框架被用来在当前 HTML 文档中嵌入另一个文档。

2、使用说明

1)可以把需要的文本放置在 <iframe> 和 </iframe> 二者之间,这样就可以应对不支持 <iframe> 的浏览器了;

2)通过使用 CSS 给 <iframe> 定义需要的样式;

(3)<iframe> 标签支持HTML的全局属性、事件属性、以及HTML5的新属性。

3、其他注意事项

通过网页使用iframe嵌入新的网页的时候,有时需要动态处理src的值,而不是固定的值,这就需要给iframe 的src赋值,通常是使用js来实现。

4、使用实例

根据实际开发过程中的不同需求,把实战中比较常见的处理方式汇总出来,需求是做不完的,也不可能全部覆盖到,这里只分享一些比较常见的操作,方便有需要的开发者查阅使用,具体的实例如下所示。

1.iframe使用:根据数据自动增长页面的高度设置

<div style="padding-top:10px;">
  <iframe id=“frame”  src=""  onload="Javascript:setHeight(this)" style="width: 100%;border: 0px;margin:0;display: none"></iframe>
</div>
function setHeight(obj){
  var w=obj;
  if (document.getElementById){
    if (w && !window.opera){
      if (w.contentDocument && w.contentDocument.body.offsetHeight){
        w.height = w.contentDocument.body.offsetHeight+40;
      }else if(w.Document && win.Document.body.scrollHeight){
          w.height = win.Document.body.scrollHeight+40;
      }
    }
}

2.iframe使用:两种不同的嵌入新页面的方式

<div style="padding-top:10px;">
  <iframe id=“frame”   style="width: 100%;border: 0px;margin:0;display: none"></iframe>
</div>

方法一:通过一个方法,将新页面的链接放入到iframe中

function preview(frame) {
    var myIframe = $("#frame");
    var url= basePath + "/base/commonFileUpload/preview?id="+frame+"&split=1";
    $('#frame').attr('src', url);


}

方法二:如果是直接打开一个新窗口展示url生成的页面

window.open(basePath + "/base/commonFileUpload/preview?id="+frame+"&split=1");

3.iframe使用:直接设置嵌入新页面链接的方式

<template>
    <div slot="body" class="container offset-bottom">
        <div  v-if="isfolw==true" style="height:100%;padding-top:44px;"> 
            <iframe :src="flowSrc" style="height:100%; width:100%;margin:0;border:0;"> </iframe>
        </div>
    </div>
</template>


<script>
export default {


    data() {
        return {
            flowSrc: null,
  }
    },
  created() {
        this.flowSrc = process.env.DEV_CLOUD_WEB_API + '/dev-vue/areamobile/#/WorkTask/List/todoList';  //直接给flowSrc赋值链接
    },


}
</script>

vue 内嵌grafana vue怎么嵌入一个iframe_vue 内嵌grafana

;

vue 内嵌grafana vue怎么嵌入一个iframe_vue 内嵌grafana_02

;

vue 内嵌grafana vue怎么嵌入一个iframe_javascript_03

;最后

上面内容就是关于在前端开发中iframe的使用,较为详细的介绍了关于iframe的使用步骤,方便开发者查阅使用,其他内容就不再赘述。

vue嵌套iframe问题总结

router.go()

主要是更改iframe中src值后导致的路由跳转混乱,多次更改iframe的src属性后,调用router.go(-1),不能实现路由后退上一级,二十将iframe当作一个窗口文档,调用了该窗口文档的window.history.go(-1),并未更改父级项目的路由后退功能,

解决办理

不通过改变iframe -> src属性值区访问具体内容,采用window.location.replace(url)更改iframe将访问的内容