2010-04-01 274 views
74

我想知道如何刷新/重新加載頁面(甚至特定的div)一次(!)使用jQuery?使用jQuery刷新(重新加載)頁面一次?

理想的方式右後DOM structure可用(參見onload事件),而不是負面影響back buttonbookmark功能。

請注意:replace()由於第三方的限制而不被允許。

+0

我錯過了你的問題。你是什​​麼意思「刷新」頁面。如果頁面已經加載,立即重新加載只會加載完全相同的內容,對吧?你想達到什麼目的? – 2010-04-01 00:50:15

+0

我正在處理一個首先「正常」出現但在刷新/重新加載時強制進入iFrame的模板。現在我想讓頁面在其第一個「調用」中顯示在該iFrame中。 TIA! – Pete 2010-04-01 01:02:04

+0

我認爲你應該閱讀這篇文章http://mycodingtricks.com/snippets/javascript/refresh-page-using-jquery/ – 2016-07-07 14:08:25

回答

77

好吧,我想我得到了你要的東西。試試這個

if(window.top==window) { 
    // You're not in a frame, so you reload the site. 
    window.setTimeout('location.reload()', 3000); //Reloads after three seconds 
} 
else { 
    //You're inside a frame, so you stop reloading. 
} 

如果是一次,然後就去做

$('#div-id').triggerevent(function(){ 
    $('#div-id').html(newContent); 
}); 

如果是定期

function updateDiv(){ 
    //Get new content through Ajax 
    ... 
    $('#div-id').html(newContent); 
} 

setInterval(updateDiv, 5000); // That's five seconds 

所以,每五秒鐘在div#DIV-ID的內容將刷新。比刷新整個頁面更好。

+0

謝謝,但我希望頁面刷新/只重載一次(如果可能,每個瀏覽器會話)...? – Pete 2010-04-01 01:05:09

+0

什麼是重新加載的觸發器?某個事件還是時間? – Ben 2010-04-01 01:05:17

+0

觸發:頁面的第一個「呼叫」(對不起,我的英語有點窮* g *) – Pete 2010-04-01 01:09:59

40
window.location.href=window.location.href; 
+14

此代碼actualy不使用jQuery ;-) – zerkms 2010-04-01 00:57:21

+0

壞代表這個,jQuery問HTML給出。 -1 – 2016-01-07 08:21:39

+0

這不會工作,如果URL有哈希像:http://mycodingtricks.com/#cool – 2016-07-07 13:53:50

66

重裝,你可以試試這個:

window.location.reload(true); 
+1

你能解釋bool參數嗎? – tomfumb 2011-11-14 19:27:04

+7

如果瀏覽器應從 網絡服務器檢索文檔,location.reload函數的參數確定 。 如果需要再次拉從Web服務器的文檔(如在文檔內容動態改變)傳遞參數爲「真」 http://grizzlyweb.com/webmaster/javascripts/refresh.asp – 2011-12-29 15:43:51

+2

這出於某種原因,無法在Chrome和Safari中使用。 – 2012-07-13 14:53:25

3

你沒有一個jQuery刷新功能,因爲這是JavaScript的基礎知識。

試試這個:

<body onload="if (location.href.indexOf('reload')==-1) location.replace(location.href+'?reload');"> 
+0

不錯的一個。你甚至可以把它放在一個函數中:和函數init(){if(location.href.indexOf('reload')== - 1)location.replace(location。 HREF + '&重載');} – 2012-02-09 23:40:58

4
$('#div-id').click(function(){ 

    location.reload(); 
     }); 

這是正確的語法。

$('#div-id').html(newContent); //This doesnt work 
0

試試這個代碼:

$('#iframe').attr('src', $('#iframe').attr('src')); 
0

用這個代替

function timedRefresh(timeoutPeriod) { 
    setTimeout("location.reload(true);",timeoutPeriod); 
} 

<a href="javascript:timedRefresh(2000)">image</a> 
4

使用此:

<script type="text/javascript"> 
     $(document).ready(function(){ 

      // Check if the current URL contains '#' 
      if(document.URL.indexOf("#")==-1) 
      { 
       // Set the URL to whatever it was plus "#". 
       url = document.URL+"#"; 
       location = "#"; 

       //Reload the page 
       location.reload(true); 
      } 
     }); 
    </script> 

由於if條件,頁面會刷新一次。

0

對於使用JavaScript清爽頁面,你可以簡單地使用:

location.reload(); 
2

用途:

<html> 
    <head> 
     <title>Reload (Refresh) Page Using Jquery</title> 
     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
     <script type="text/javascript"> 
      $(document).ready(function() { 
       $('#reload').click(function() { 
        window.location.reload(); 
       }); 
      }); 
     </script> 
    </head> 
    <body> 
     <button id="reload" >Reload (Refresh) Page Using</button> 
    </body> 
</html> 
0

試試這個:

<input type="button" value="Reload" onClick="history.go(0)"> 
1

添加到您的文件的頂部和該網站將每30秒刷新一次。

<script type="text/javascript"> 
    window.onload = Refresh; 

    function Refresh() { 
     setTimeout("refreshPage();", 30000); 
    } 
    function refreshPage() { 
     window.location = location.href; 
    } 
</script> 

另一種是:添加頭標記

<meta http-equiv="refresh" content="30"> 
1
- location = location 
- location = location.href 
- location = window.location 
- location = self.location 
- location = window.location.href 
- location = self.location.href 
- location = location['href'] 
- location = window['location'] 
- location = window['location'].href 
- location = window['location']['href'] 

你不需要jQuery的這一點。你可以用JavaScript來完成。

0

您可能需要使用this參考location.reload() 檢查此,它將工作。

this.location.reload();