簡體   English   中英

通過在Firefox中單擊“后退”按鈕來重新加載訪問時的頁面

[英]Reload the page when visited by clicking Back button in Firefox

我有一個頁面,可以將整個身體動畫出觀眾的屏幕,作為過渡。 它可以正常工作,但是當用戶在瀏覽器中單擊“后退”按鈕時,Firefox從沒有正文的歷史記錄中彈出緩存的頁面。

因此,通過后退按鈕訪問頁面時,重新加載頁面非常簡單。

我嘗試使用以下代碼重新加載頁面,以避免重復加載。

<script type="text/javascript">
  window.onload=function(){
    var e=document.getElementById("refreshed");
    if(e.value=="no")e.value="yes";
    else{e.value="no";location.reload();}
  }
</script>
<input type="hidden" id="refreshed" value="no">

它沒有解決問題,因為甚至沒有調用匿名函數。

因此,我嘗試設置標題,以使瀏覽器不會緩存該頁面。

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">

它還沒有解決問題。

該頁面在Chrome中運行良好。

我使用的Firefox版本是12.0

如何使用Javascript,JQuery或任何其他客戶端腳本重新加載頁面?

導航回內存中緩存的頁面時不會觸發onload事件。

我認為您有三個主要選擇:

  1. 使用onpageshow事件(在導航到緩存的頁面時觸發)。
  2. 通過添加卸載事件偵聽器(可以只是一個空函數)來防止頁面的內存緩存。
  3. 不要做煩人的卸載動畫。

我沒有嘗試過,但是setTimeout可能會有所幫助。

<script>
setTimeout(function() {
var e=document.getElementById("refreshed");
    if(e.value=="no")e.value="yes";
    else{e.value="no";location.reload();}
}, 1000);
</script>

暫無
暫無

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

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