js主动刷新当前页签的js代码
本来想找一下jeesite有没有主动刷新当前页面的内置方法。
官方文档找了一大堆,找都找不到,也可能我这个需求比较少人须要。
tab标签页有一个右键刷新页签功能
查看编译后的代码,发现能够用前端编译后的源码html
$('.active .refresher').click()
这个js脚原本调用官方内置的刷新功能。前端
可是这个脚本存在问题,只有第一次才会触发,再操做打开列表或表单界面后,这个方法就会失效。浏览器
浏览器调试发现,后面几回获取 $('.active .refresher') 元素都是空的,获取不到。前端框架
因为前段不是很熟悉,也没前段配合,想了老半天,最后发现
官方函数,
js.getCurrentTabPage(currentTabCallback); 回调参数是iframe的contentWindow对象,
就想到了iframe的刷新功能。
下面是刷新当前页签的js代码。测试能够正常使用。
存在一个问题,若是是查询列表页面,调用下面js会形成查询条件丢失。
js.getCurrentTabPage(function(contentWindow){
//从新加载iframe窗口
contentWindow.location.reload(true);
});
搞定这个问题,而后的当前页刷新功能就均可以实现了。
喝杯水吹个风的过程当中,想到个问题。
既然这个前端框架是使用多个iframe在一个界面中,那只有第一次进入界面才能获取到$('.active .refresher')选择器对应元素的,操做界面一段时间后就获取不到的问题,就能够解释了通了。
浏览器控制台调式。(第一次刷新页面,能够获取到html元素,操做一段时间后,须要使用 $(选择器,window.parent.document).html() 这个来获取文档内容。
因此,上面刷新当前页签的方法也能够改为下面的刷新代码(调用内置js脚本刷新页面,其实和上面代码一个样。)
$('.active .refresher',window.parent.document).click()