js主动刷新当前页签的js代码
原本想找一下jeesite有没有主动刷新当前页面的内置方法。
官方文档找了一大堆,找都找不到,也可能我这个需求比较少人需要。
tab标签页有一个右键刷新页签功能
查看编译后的代码,发现可以用前端编译后的源码
$('.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()