Vue + Element UI 前端篇(十五):嵌套外部网页

Vue + Element UI 实现权限管理系统 前端篇(十五):嵌套外部网页 

嵌套外部网页

在有些时候,我们需要在我们的内容栏主区域显示外部网页。如查看服务端提供的SQL监控页面,接口文档页面等。

这个时候就要求我们的导航菜单能够解析嵌套网页的URL,并根据URL路由到相应的嵌套组件。接下来我们就讲解具体实现方案。

实现原理

1. 给菜单URL添加嵌套网页前缀,如果是服务端网页,除内部URL外,以iframe:前缀开头,外部网页直接以http[s]完整路径开头。

2. 路由导航守卫在动态加载路由时,检测到如果是外部嵌套网页,则绑定IFrame嵌套组件,最后用IFrame来渲染嵌套页面。

3. 菜单点击跳转的时候,根据路由类型生成不同的路由路径,载入特定的页面内容渲染到步骤二绑定的特定组件上。

代码实现

前面的原理听起来有点笼统,我们来看看具体的实现过程。

1. 确定菜单URL

如SQL监控页面,其实显示的是服务端Druid提供的现有页面。

访问地址是 :  http://localhost:8088/druid/login.html 即服务端地址 + xxx格式。

效果如下图所示,输入服务端配置的账号密码就可查看了,这里是用户:admin, 密码:admin。

 登录之后,可以看到各种数据库相关的监控记录,是数据库监控和调优的利器。

我们在SQL监控的菜单URL上去掉服务端地址,加上iframe:前缀。

届时路由解析时在根据iframe:前缀绑定到IFrame嵌套页面组件。

然后在点击菜单跳转时跳转到服务端地址+xxx的具体访问地址。

2. 绑定嵌套组件

在导航守卫动态加载路由的时候,解析URL,如果是嵌套页面,则绑定到IFrame组件。

router/index.js

 

utils/iframe.js

复制代码

/**
 * 嵌套页面IFrame模块
 */

/**
 * 嵌套页面URL地址
 * @param {*} url
 */
export function getIFrameUrl (url) {
  let iframeUrl = ''
  if(/^iframe:.*/.test(url)) {
    iframeUrl = url.replace('iframe:', '')
  } else if(/^http[s]?:\/\/.*/.test(url)) {
    iframeUrl = url.replace('http://', '')
    iframeUrl = iframeUrl.replace('https://', '')
  }
  return iframeUrl
}

复制代码

并且在每次路由时,把路由路径保存到store,如果是IFrame嵌套页面,则IFrame会在渲染时到store读取iframeUrl以确定渲染的内容。

store/modules/iframe.js

复制代码

export default {
    state: {
        iframeUrl: []   // 嵌套页面路由路径
    },
    getters: {
    },
    mutations: {
        setIFrameUrl(state, iframeUrl){  // 设置iframeUrl
            state.iframeUrl = iframeUrl
        }
    },
    actions: {
    }
}

复制代码

IFrame组件在渲染时,读取sotre的iframeUrl以加载要渲染的内容(通过设置src)。

views/IFrame/IFrame.vue

复制代码

<template>
  <div class="iframe-container">
    <iframe :src="src" scrolling="auto" frameborder="0" class="frame">
    </iframe>
  </div>
</template>

<script>
export default {
  data() {
    return {
      src: ''
    }
  },
  methods: {
    // 获取路径
    resetSrc: function (url) {
      this.src = this.global.baseUrl + url
    }
  },
  mounted(){
    this.resetSrc(this.$store.state.iframe.iframeUrl)
  },
  watch: {
    $route: {
      handler: function (val, oldVal) {
        // 如果是跳转到嵌套页面,切换iframe的url
        this.resetSrc(val.path)
      }
    }
  }
}
</script>

<style lang="scss">
.iframe-container {
  position: absolute;
  top: 60px;
  left: 0px;
  right: 0px;
  bottom: 0px;
  margin-top: -29px;
  .frame {
    position: relative;
    top: 0px;
    width: 100%;
    height: 100%;
  }
}
</style>

复制代码

 3.菜单路由跳转

 在菜单路由跳转的时候,判断是否是iframe路由,如果是则处理成ifame需要的路由进行跳转。

测试效果

好了,嵌套网页的大致实现过程就是这样了,下面我们来看看最终效果。 

SQL监控页面效果

接口文档页面效果

源码下载

后端: kitty: 基于Spring Boot、Spring Cloud、Vue.js 、Element UI实现,采用前后端分离架构的权限管理系统,JAVA快速开发平台。

前端: kitty-ui: Kitty 前端,基于 Vue + Element 实现的权限管理系统。

征尘bjajmd
关注 关注
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vue中实现嵌套页面(iframe)
11-19
vue嵌套iframe,将要嵌套的文件放在static下面。src可以使用相对路径,也可使用服务器根路径http:localhost:8088/… <iframe src=”../../static/plusPro.html” width=”1200″ height=”300″ frameborder=”0″ scrolling=”auto”style=”position:absolute;top: -300px;left: 0px;”></iframe> 补充知识:关于VUE嵌套iframe的一系列问题 此文是建立在vue-cli之上 ,当然单写也可以,下文会涉及一些关于cli的知识,
vue中如何如何实现在一个网站中嵌入另一个网站呢
weixin_59244784的博客
06-13 630
vue中如何如何实现在一个网站中嵌入另一个网站呢
vue前端一个简单的静态页面
2303_76992412的博客
05-27 3635
Vue.js是一款用于构建用户界面的JavaScript框架。它基于标准HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,帮助开发者高效地开发用户界面。Vue的设计注重灵活性和“可以被逐步集成”的特点,可以用于构建简单的静态页面到复杂的单页应用程序。Vue的核心功能包括声明式渲染和响应性,它能够自动跟踪JavaScript状态并在其发生变化时响应式地更新DOM。此外,Vue支持单文件组件,允许开发者将组件的逻辑、模板和样式封装在同一个文件中,便于管理和复用。
Vue进阶(静态网页)使用
最新发布
qq_66473536的博客
08-21 482
总体结构node_moudules:项目依赖的js包router:路由器store:vuex 全局共享数据views:公共组件App.vue:项目主文件、网页首页 main.js:项目入口文件pcakage.json: 项目配置、依赖包管理vue.config.js: vue-cli配置文件。
Vue】使用vue框架制作一个简单的网页
热门推荐
YIZHILIUSHA2020的博客
10-22 2万+
参考代码(主要参考了样式):link 本文代码地址(Gitee):link 项目内容主要包括header+轮播图+背景音乐+人物介绍卡片+时间线+视频集+长引用+时间显示+footer 注意:由于本项目采用了组件化所以且style里没加scoped,所以不同组件之间的样式可以共用。 网页具体如下GIF所示: ......
使用vue组件搭建网页应用
Cliff Rhine的博客
03-23 1万+
使用vue组件搭建网页应用
vue 中使用 iframe 嵌入网页,页面可自适应
beijixing333y的博客
06-23 1万+
vue 中使用 iframe 嵌入网页
页面间嵌套的3种方法总结
qq_45682379的博客
07-08 1万+
1.为什么要复用页面 在很多的网站页面的header,footer都是复用的。 随便哪个网站:如哔哩哔哩官网 B站前面的导航栏(footer) 便是复用的,这块区域在整个网站的某些页面中是重复出现的,没使用复用前,最原始的方法就是把相同的代码复制粘贴到网站的每个页面,这样会使得我们整个网站占用代码的空间很大,而且出现大量出现冗余代码。 2.介绍三个页面嵌套的方法 1.通过iframe标签来为网页嵌套页面(JSP和HTML均适用): 代码如下: <!DOCTYPE html> <html&
vue+element-ui前端模板
10-28
"vue+element-ui前端模板"是一个预配置好的开发环境,它整合了 VueElement UI,让开发者可以迅速启动一个具备现代前端特性的项目。 在这样的模板中,你可以期待以下关键知识点: 1. **Vue.js 框架**:Vue.js ...
vue+element-ui表格封装tag标签使用插槽
10-15
在Web开发中,尤其是使用Vue.js框架结合Element-UI组件库时,我们经常会遇到需要在表格中展示信息并使用特定标签(tag)来标注这些信息的场景。Vue+Element-UI表格封装tag标签使用插槽便是介绍如何在表格中动态插入...
vue+element-ui动态生成多级表头的方法
10-18
标题中的“vue+element-ui动态生成多级表头的方法”是指在Vue.js应用程序中使用Element-UI库来创建一个能够根据数据动态展示多级表头的表格组件。Element-UI是一个流行的前端UI框架,它提供了丰富的组件库,适用于...
Vue + Element-ui的下拉框el-select获取额外参数详解
10-14
Vue.js框架中,Element-ui库提供了一套丰富的UI组件,其中包括用于创建下拉框的`el-select`组件。在实际开发中,我们可能需要在用户改变选择时获取额外的信息,比如当前行的数据或者自定义的属性。本文将详细介绍...
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
01-19
使用Vue + Element UI,构建出最基本的树如下图所示: 现在我们就要在这个基础上进行改造,使页面更加符合我们的交互场景。 下拉菜单 将下拉菜单嵌到树节点中,使操作更加简便、紧凑。 效果演示 效果如图: 图示1...
VUE系统内嵌其他页面的三种方法
m0_73892103的博客
10-11 1万+
(专门为 Vue 开发的插件,可自定义的内容 CSS、自动调整 iframe 高度等)在B项目中 (本人的项目是指定跳转页面, 所以在当导航守卫的js文件中接收传过来的参数)在A项目中使用标签打开。
vue如何内嵌网页
Study123wf的博客
07-20 2993
参考链接:https://m.php.cn/faq/536004.htmlA项目打开。
如何用VUE从零创建网站
huihui0325的博客
07-28 9512
本文简洁分享了本人在开发网站时的一些经验与常用操作
vue】内嵌第三方网页
小菜张的博客
03-29 5288
内嵌其他网页
vue-element-admin内嵌html页面
weixin_45973832的博客
03-03 1017
vue-element-admin内嵌html页面
vue项目通过url链接引入其他系统页面
ZHANGLIZENG的博客
12-23 1万+
1.正常配置菜单,在vue页面使用iframe进行嵌套加载其它系统的页面,已加载百度为例 <template> <div id="app"> <iframe style="border:none" :width="searchTableWidth" :height="searchTableHeight" v-bind:src="reportUrl" ></ifr
vue+element 后台管理源码
08-31
Vue Element 后台管理源码是一个基于Vue.jsElement UI的快速开发平台,用于构建现代化的响应式管理系统。它提供了丰富的组件和解决方案,帮助开发者快速搭建高质量的后台管理界面。 该源码具有以下主要特点: 1. 响应式布局:根据屏幕尺寸自动调整布局,使得后台管理系统在不同设备上都能够适应。 2. 多功能组件:提供了丰富的Element UI组件,包括表格、表单、图表、对话框等,能够满足各种常见的后台管理功能需求。 3. 可扩展性:源码采用模块化开发,提供了清晰的目录结构和组件划分,开发者可以根据自己的需求进行定制和扩展。 4. 路由管理:源码使用Vue Router进行路由管理,支持动态路由和嵌套路由,可以方便地实现导航菜单和页面的跳转。 5. 权限控制:提供了基于角色的权限控制功能,开发者可以根据用户角色进行页面和功能的权限管理。 6. 数据交互:通过封装axios库,实现了与后端接口的数据交互,并提供了统一的请求拦截和响应处理机制。 7. 国际化支持:支持多语言切换,可以根据用户的语言设置显示不同的界面内容。 总之,Vue Element 后台管理源码是一个功能强大、易于使用和扩展的开发工具,适用于构建中大型的后台管理系统。开发者可以基于这个源码快速搭建出具有良好用户体验的后台管理界面。
写文章

热门文章

  • 9个基于Java的搜索引擎框架 62830
  • OCR图像识别技术的JAVA实现(一) 30209
  • bootstrap FileInput多文件上传插件使用详解(包括Java代码) 26784
  • nginx启动、关闭、重启及常用的命令 24234
  • bootstrap File Input 多文件上传插件使用记录(二)删除原文件 21508

分类专栏

  • nginx 4篇
  • GIS 1篇
  • UniApp 1篇
  • 消息队列 3篇
  • 流媒体 3篇
  • Redis 2篇
  • windows server2012 R2 1篇
  • docker 12篇
  • k8s 1篇
  • 环境安装 5篇
  • Java虚拟机 3篇
  • 大数据
  • 日志采集 1篇
  • 搜索引擎 12篇
  • git 1篇
  • IDEA 1篇
  • 防火墙 1篇
  • Java基础 9篇
  • Java开发 27篇
  • Android/IOS 2篇
  • Python 3篇
  • 前端技术 11篇
  • 工作流 19篇
  • 数据库 33篇
  • Linux/Nginx 20篇
  • Spring 10篇
  • 缓存 6篇
  • 服务器/架构 16篇
  • 测试 4篇
  • 支付 5篇
  • 开发环境/工具 18篇
  • 报表工具 1篇
  • 人工智能 2篇
  • 微服务 2篇

最新评论

  • 一键生成数据库文档大利器

    ZL_KZN: 这不是和数据库客户端软件功能重合了么

  • Oracle 官网账号

    CSDN-Ada助手: 哇, 你的文章质量真不错,值得学习!不过这么高质量的文章, 还值得进一步提升, 以下的改进点你可以参考下: (1)使用更多的站内链接;(2)增加除了各种控件外,文章正文的字数;(3)增加条理清晰的目录。

  • SpringBoot整合Activiti5.22.0实现在线设计器

    java[大白];:  org.activiti.engine.ActivitiException: couldn't check if tables are already present using metadata: Cannot create PoolableConnectionFactory (Unknown system variable 'query_cache_size')

  • SpringBoot整合Activiti5.22.0实现在线设计器

    java[大白];: 怎么起不来呢 报错

  • uniapp下各端调用三方地图导航

    小呆毛~: 这个能把苹果地图接进来吗

最新文章

  • 一键生成数据库文档大利器
  • Java导入、导出excel保姆级教程(附封装好的工具类)
  • 超过1000w条数据,MySQL查询越来越慢?四种方案帮你解决!
2024年30篇
2023年29篇
2022年24篇
2021年13篇
2020年83篇
2019年49篇
2018年60篇
2017年58篇
2016年17篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司新郑推广网站搭建优化三水网站优化网站优化工作安排金山区企业网站优化方案定制长春网站优化搜索如何将网站优化效果好大港网站优化哪家专业崇州网站优化怎么收费赤峰网站关键词优化软件网站推广优化す询苏da峰1大兴公司网站排名优化莞城网站优化哪家好网站优化首页付款aso优化推广网站黄石网站优化效果小店区网站优化推广iis8.5优化网站网站做完301如何优化网站优化怎么增加收录网站优化建设方案关键词网站排名优化公司辽宁铁岭网站设计优化网站推广大熊猫优化华阴网站优化排名综合网站优化公司江西网站目标关键词优化淄博网站优化铭盛信息长春网站专题优化网站关键词手机端优化实力强的网站推广与优化上首页歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化