簡體   English   中英

如何檢查頁面是否使用js重新加載

[英]How to get check if a page gets reloaded with js

您現在如何檢查頁面是否重新加載?

以前是這樣的:

 //check for Navigation Timing API support if (window.performance) { console.info("window.performance works fine on this browser"); } console.info(performance.navigation.type); if (performance.navigation.type == performance.navigation.TYPE_RELOAD) { console.info( "This page is reloaded" ); } else { console.info( "This page is not reloaded"); }

但現在我發現導航類型已被棄用: https://developer.mozilla.org/en-US/docs/Web/API/Performance/navigation

然后我檢查了替換: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming

即使在閱讀之后,我仍然不太清楚我是如何做到這一點的。 那么檢查頁面是否刷新的新方法是如何工作的呢?

我讀過之后也試過這個:

 if (PerformanceNavigationTiming.type == "reload") { alert('page reloaded') }

但隨后將不會顯示警報。

之后我嘗試了這個:

 if (PerformanceNavigationTiming.type == PerformanceNavigationTiming.TYPE_RELOAD) { alert('page reloaded') }

但是它也會在沒有頁面刷新的情況下顯示警報。

然后我嘗試的最后一件事:

 const pageAccessedByReload = ( (PerformanceNavigationTiming && PerformanceNavigationTiming.TYPE === 1) || window.performance.getEntriesByType('navigation').map((nav) => nav.type).includes('reload') ); alert(pageAccessedByReload);

但這也給了我一個警報,要么在未重新加載時為假,在重新加載時為真。 而且我只希望在重新加載頁面時發出警報。

您必須記住在閱讀新的 API 文檔時始終注意,輸入 PerformanceNavigationTiming 是一個字符串而不是數字,因此正確的方法是:

 if (window.PerformanceNavigationTiming) { console.info("window.performance works fine on this browser"); if (PerformanceNavigationTiming.type === "reload") { console.info("This page is reloaded"); } else { console.info("This page is not reloaded"); } }

我終於找到了解決方案:

 const pageAccessedByReload = ( (PerformanceNavigationTiming && PerformanceNavigationTiming.TYPE === 1) || window.performance.getEntriesByType('navigation').map((nav) => nav.type).includes('reload') ); if (pageAccessedByReload == true) { alert(pageAccessedByReload); }

現在它只會在頁面刷新時顯示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM