[英]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();
編輯:
現在是一種更“語法上沒那么糟糕”的方法:重寫整個文檔。
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.