vue:与iframe配合

需求说明

有很多人是这么说的,有vue,还用jquery干嘛,还用iframe干嘛。
vue强大不可否认,但是就因此认为在vue中不需要使用其他前端工程的方法,这是不对的。

源代码构成

  • 一段大于3000行的js代码,主要是前端svg绘图,操作包括jquery、jquery-ui 创建、更改、删除svg节点,以及多种方式查看、修改节点属性,响应请求,
  • 一段200行左右的js代码,自定义插件,基于原型链,主要用于暂存svg绘图的内容
  • 一段css文件,未压缩状态1000多行

任务计划

需要将整个项目代码基于vue和vuex重构,时间不充裕也很难解决前端绘图各种响应,只能最简单的方式,将这一部分移植到iframe中,节约时间并完整保留功能

需要功能

vue 父级向 iframe 子级传递参数

<iframe
	  id="iframe"
	  ref="iframe"
	  :src="`../../../static/xxx.html?id=${this.id}`"
	  frameborder="0"
	  width="100%"
	  height="100%"
	  scrolling="no"
></iframe>

其中,iframe 引用的html文件必须放在static目录下,this.id 是要传递的参数

在 iframe里获取传的id
console.log(location.search);

iframe 调用 父级 vue 的函数

首先要在vue里声明函数,并挂到window上

created(){
    window['go'] = () => {
      this.go();
    };
},
methods: {
    go(){
      //do somthing...
    }
},

这段代码声明了一个函数名为go的函数,并在created里将其赋给window,名字仍为 go

在iframe 里调用该函数
window.parent.go();

这样就能调都在父级vue里声明的函数go

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值