**问题描述:**在A页面中通过iframe嵌套了B页面,B页面的内容是通过A页面的query里面的参数请求到的
使用watch监听了route变化,当query中传入的参数变更后就需要让iframe的src和内容同步变更,但在项目过程中,iframe随着变更了,但是iframe中的内容却没有同步更新
在网上查询到了下面的解决方法:
方法1:document.getElementById(iframe的id).contentWindow.location.reload(true);使用这种方法只能针对嵌套的内容是同源的,由于我嵌套的内容是跨域的所以使用这个方法会报错
方法2:给iframe的src重新赋值或者使用attribute重新设置src的值,这两种方法都尝试了,但内容还是无法更新
现在还是没有搞明白为什么地址变更了内容却没有同步更新,我猜测是页面没有刷新的原因
我使用的解决方法是:
在create钩子函数执行的时候,在iframe的父节点中动态创建一个iframe标签,同时设置src和width、height,然后用watch监听route的变化,有变化就重新执行这一部分操作,虽然知道这样对性能不太友好,但是暂时解决了我的问题,如果谁有更好的解决方案,可以和我交流下。
代码如下:
// 父节点
<div v-show="activeTab === 'staticData'" style="width:100%;textAlign:left;" id="iframe-box"></div>
create