先来看个效果图

例:http://localhost:9527/#/iframe/urlPath?src=https://www.baidu.com (访问百度)

格式:http://localhost:9527/#/iframe/urlPath?src=第三方的网站

并且支持判断iframe是否加载完成的等待框以及浏览器窗口变化做出的响应

改造代码

./src/views/iframe/index.vue(第三方iframe组件)

export default {

name: 'myiframe',

data() {

return {

fullscreenLoading: false,

urlPath: this.getUrlPath()

}

},

created() {

this.fullscreenLoading = true

},

mounted() {

this.iframeInit()

window.onresize = () => {

this.iframeInit()

}

},

props: ['routerPath'],

watch: {

routerPath: function(val) {

this.urlPath = this.getUrlPath()

}

},

components: {},

methods: {

iframeInit() {

const iframe = this.$refs.iframe

const clientHeight = document.documentElement.clientHeight - 90

iframe.style.height = `${clientHeight}px`

if (iframe.attachEvent) {

iframe.attachEvent('onload', () => {

this.fullscreenLoading = false

})

} else {

iframe.onload = () => {

this.fullscreenLoading = false

}

}

},

getUrlPath: function() {

let url = window.location.href

url = url.replace('/iframe', '')

return url

}

}

}

.iframe {

width: 100%;

height: 100%;

border: 0;

overflow: hidden;

box-sizing: border-box;

}

./src/router/reouter/index.js(增加路由)

{

path: '/iframe',

component: Layout,

redirect: '/iframe', // you can set roles in root nav

children: [{

path: ':routerPath',

component: _import('iframe/index'),

name: 'iframe',

meta: {

title: 'iframe',

icon: 'people'

}

}]

},

./src/store/modules/tagsView.js(让vue-router路由可以获取完整的url路径)

将全部的view.path改成view.fullPath

if (state.visitedViews.some(v => v.path === view.fullPath)) return

state.visitedViews.push({

name: view.name,

path: view.fullPath,

title: view.meta.title || 'no-name'

})

if (!view.meta.noCache) {

state.cachedViews.push(view.name)

}

GitHub 加速计划 / vu / vue-element-admin
87.26 K
30.42 K
下载
PanJiaChen/vue-element-admin: 是一个基于 Vue.js 和 Element UI 的后台管理系统模板,支持多种数据源和插件扩展。该项目提供了一个完整的后台管理系统模板,可以方便地实现后台管理系统的快速搭建和定制,同时支持多种数据源和插件扩展。
最近提交(Master分支:2 个月前 )
0caa975e - 2 年前
cd3f7267 - 2 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐