2014-09-19 90 views
3

我想要一個按鈕,點擊後將在指定的時間後刷新當前頁面。按鈕刷新頁面每秒/分鐘等?

我目前有:

<script type="text/javascript"> 
    setTimeout(function reload(){ 
    location = '' 
    },1000) 
</script> 

<button onclick="reload()">Reload</button> 

然而,這只是重新加載,甚至無需點擊按鈕的頁面。我想要按鈕來執行腳本,並且還有一個按鈕來停止頁面重新加載。

這應該是很簡單,但我無法弄清楚:(

******編輯**********

我還像腳本單擊該按鈕後,在一個無限循環中運行。

+0

將你的「setTimeout」放入函數中。並從按鈕調用該功能。 – 2014-09-19 13:52:24

回答

2

這應該做的伎倆

<script type="text/javascript"> 
    function reload(){ 
    setTimeout(function(){location.reload()}, 3000); 
    } 
</script> 

<button onclick="reload()">Reload</button> 
6

setTimeout被稱爲在頁面加載,你需要把它放在reload()函數內部:

function reload() { 
    setTimeout(function() { 
     window.location.reload(); 
    }, 1000); 
} 

爲了使定時器運行每x秒和重裝只有一個這樣的網頁的一部分,您將需要使用setInterval和AJAX請求,東西:

var timer; 
function reload() { 
    timer = setInterval(function() { 
     $.post('foo.html', function(data) { 
      $('#bar').html(data); 
     }); 
    }, 1000); 
} 

function clear() { 
    clearInterval(timer); 
} 
+0

OP也想清除超時 – Turnip 2014-09-19 13:53:11

+0

謝謝Rory,這對我所問的問題工作得很好。不過,我確實忘了提及,我希望腳本在點擊按鈕後在無限循環中運行,對不起。 – 2014-09-19 13:54:41

+0

@LukeJennings當你重新加載頁面時,這將不可能,所以它將被設置回初始狀態。要做你需要的東西,你需要使用AJAX每X秒刷新頁面的一部分。 – 2014-09-19 13:55:49

0

你需要用另一種功能,整個事情並調用從按鈕單擊

1

你寫的是什麼

window.setTimeout("location = ''"; ,1000); 

您是在1秒後執行此功能。你需要在函數內定義setTimeout。還有一個內置的方法來重新加載頁面。打電話,而不是將位置設置爲空白字符串。

function reload() { 
    setTimeout(function() { 
     window.location.reload(true); 
    },1000); 
} 

現在要取消超時,您需要使用clearTimeout(timeoutId);您可以從setTimeout在調用它時返回的整數中獲取timeoutId。

var timer = null; 
function reload() { 
    timer = window.setTimeout(function() { 
     window.location.reload(true); 
    },1000); 
} 

function cancelReload() { 
    if (timer) { 
     window.clearTimeout(timer); 
    } 
    timer = null; 
} 

你說你想讓它繼續運行。這將需要cookies或本地存儲。

var timer = null; 
function reload() { 
    localStorage.reload = true; //set localstorage so we know to fire it off again 
    timer = window.setTimeout(function() { 
     window.location.reload(true); 
    },1000); 
} 

function cancelReload() { 
    if (timer) { 
     window.clearTimeout(timer); 
    } 
    timer = null; 
    localStorage.removeItem("reload"); //remove the key in localstorage 
} 

if (localstorage.reload) { //check localstorage to see if key is set 
    reload(); 
}