前言
在前端开发过程中,往原有页面中嵌入新的页面的需求也是比较常见的需求操作,尤其是在比较复杂的必须要用嵌套的场景下。前端中使用嵌套的时候,需要用到的就是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>
;
;
;最后
上面内容就是关于在前端开发中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将访问的内容