From b13e504ec45ba8e69904afb2d195ea07e969b8a7 Mon Sep 17 00:00:00 2001 From: Hao Sun Date: Wed, 27 Jul 2022 08:58:40 +0000 Subject: [PATCH] * fix open tab with same url occurs blank page. --- module/index/js/index.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/module/index/js/index.js b/module/index/js/index.js index d8dfe59d94..2c8f76f6d9 100644 --- a/module/index/js/index.js +++ b/module/index/js/index.js @@ -187,7 +187,7 @@ * @param {string} [appCode] The code of target app to open * @return {void} */ - function openTab(url, appCode) + function openTab(url, appCode, forceReload) { /* Check params */ if(!appCode) @@ -264,7 +264,9 @@ } /* Show page app and update iframe source */ - if (url) + var iframe = app.$iframe[0]; + var isSameUrl = iframe && url && iframe.contentWindow.location.href.endsWith(url); + if (url && (!isSameUrl || forceReload)) { app.$app.toggleClass('open-from-hidden', app.$app.is(':hidden')) reloadApp(appCode, url, true); @@ -441,7 +443,8 @@ if(url === true) url = app.url; else if($.tabSession) url = $.tabSession.convertUrlWithTid(url); - var iframe = app.$iframe[0]; + var iframe = app.$iframe[0]; + var isSameUrl = iframe && url && iframe.contentWindow.location.href.endsWith(url); /* Add hook to page before reload it */ if (iframe && iframe.contentWindow.beforeAppReload) @@ -451,7 +454,7 @@ try { - if(url) iframe.contentWindow.location.assign(url); + if(url && !isSameUrl) iframe.contentWindow.location.assign(url); else iframe.contentWindow.location.reload(true); } catch(_) @@ -462,7 +465,7 @@ if(!notTriggerEvent) app.$app.trigger('reloadapp', app); if(url) $(iframe.contentWindow.document.body).hide(); // Code for task #59703. - app.$app.addClass('loading'); + if(!isSameUrl) app.$app.addClass('loading'); if(app._loadTimer) clearTimeout(app._loadTimer); app._loadTimer = setTimeout(function() {