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()