簡體   English   中英

如何使用Ajax自動刷新頁面(並防止實際的瀏覽器刷新)?

[英]How to auto-refresh a page using ajax (and prevent an actual browser refresh)?

我試圖將一個小的自動刷新JavaScript附加到已經具有jQuery的頁面上。

我沒有對該網站的控制權 ,因此無法為每次刷新后出現的HTML添加簡單的腳本。

我必須在控制台中運行腳本,否則頁面將僅刷新一次。

這是我正在嘗試的:

var x = function(){
  // reload the page
  jQuery('html').load(window.location.href);

  // recurse every 5 seconds
  setTimeout(x, 5000);
};

// init
x();

這將生成一個appendChild錯誤。 我猜我只是在解決這個問題。

盡管不相信這是可能的,但這種解決方案雖然不完美,但肯定效果很好

(function x(){
  jQuery('html').html('<iframe width="100%" height="' + $(window).height() + 'px" src="' + window.location.href + '"></iframe>');

  setTimeout(x, 5000);
})();

嘗試這個:

function x(){
    setTimeout(function(){ location.reload(); }, 5000);
}();

編輯:您已經使您的問題更加清楚了。 這應該可以解決問題:

setInterval(function(){ location.reload(); }, 5000);

嘗試使用window.location.reload(); 像下面的自動刷新腳本一樣,

<script>
    setTimeout(function () {
       window.location.reload();
    }, 5000);
</script>

也許您想用頁面內容替換正文。 它不會重新加載整個頁面,因此您的腳本將保留在那里。 但是,它可能與頁面上的現有腳本沖突。

怎么做:

var x = function () {
  $('body').load(window.location.pathname);

  setTimeout(x,5000);
}
x();

jQuery參考

編輯:

現在是一種更“語法上沒那么糟糕”的方法:重寫整個文檔。

var x = function () {
  $.get(window.location.pathname, function (data) { 
    document.open(); 
    document.write(data); 
    document.close(); } 
  );

  setTimeout(x,5000);
}
x();

這有效,並且不會在body標簽下重新加載頁面。

但是我認為太多的打字和擔心注射黑客:P

暫無
暫無

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

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