layui打开iframe窗口不刷新的问题

169
原文链接: zhuanlan.zhihu.com

这个问题可能是我工作以来,最死磕不算bug的一个了,晚上熬夜到三点钟,终于找到了解决的办法。

问题所在,我所用的layui后台管理系统的框架是之前遗留下来的,2017年的版本,iframe窗口不刷新的问题,也就是框架本身的缓存问题,现在layui针对这一问题已经升级版本,就不存在问题了。

先说一下要修改的地方:点击左侧的菜单栏(即打开一个新的iframe层页面),第一次打开的窗口会刷新,但是再次点击左侧菜单的时候就不会刷新了,每次这个页面获取到新的数据,iframe窗口里面都是有缓存的,都需要手动F5刷新才会更新,因此带来不便。

改为:每次点击左侧菜单,都会触发一次刷新事件。




解决办法:打开tab.js文件
1:在配置里面添上

autoRefresh:true




2:写自动刷新的代码

if(_config.autoRefresh) {
                     _config.elem.find('div.layui-tab-content > div').eq(tabIndex).children('iframe')[0].contentWindow.location = data.href;
                    /*_config.elem.find('div.layui-tab-content > div').eq(tabIndex).children('iframe')[0].contentWindow.location.reload();*/
                }







ok,重新启动项目的时候,会发现缓存的问题已经解决。