前段时间 使用h5搞了个用cesium.js做的地图服务功能,后来想整合到vue项目,当然最简单的就是iframe直接拿来用了。
但html和vue的方法交互就是成了问题,vue调用html种方法还好,尤其是html调用vue中的方法当初就没有解决,忙着项目上线直接搞了个setInterval不停轮询,哎不说他了;
现在空点了来把问题解决了,俗话说得好闲时学来忙时用,闲时不学忙时莫得用,所以各位走过路过的朋友看过来看过来,要买乡音这边来(程序员改摆地摊了,哈哈哈)。且扯远了下面进入主题
这个还是挺简单的 直接window.frames['iframe name'].方法名
如:
invokeHtmlMethod(){window.frames['iframeMap'].lodaTable()},
这个就有点难做了(准确来说是采坑了);第一个当然会想到直接将方法绑到window上了;
create(){window.vueDefinedMyProp=(receiveParams) =>{this.receiveParamsFromHtml(receiveParams)}},methods:{receiveParamsFromHtml(res){console.log(res)},}
然后html页面中是这样
运行报错了
VM345:1UncaughtTypeError:window.parent.vueDefinedMyProp is not afunctionat:1:15
后来去网上看见这朋友是这么做得
于是我就照