2013-05-16 149 views
2

我想刷新按鈕單擊和頁面刷新後調用一個函數的網頁。 但它的相反情況不會發生,即先調用該函數,然後刷新頁面。按鈕點擊後刷新頁面,然後調用函數

這是我曾嘗試:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
<script> 
    function restartall(){ 
     $('#text').append('hello'); 
    } 
</script> 
<a href="javascript:document.location.reload();"> 
<button onclick="restartall()">Referash Map</button></a> 
<div id="text"></div> 

請解決這個查詢。

+2

你爲什麼不使用AJAX來代替刷新頁面? –

+0

如果你使用jQuery,你爲什麼不用jQuery綁定事件,而是使用'onclick'參數等不安全的方法? – Wiktor

+0

你能解釋爲什麼你需要刷新頁面嗎? – Broxzier

回答

1

當您重新加載頁面時,您正在丟失JavaScript調用堆棧。您必須在URL或use cookie上附加一些參數。

2

使用下面的代碼

<body onload="onrefresh();"> 

<a href="javascript:myfun();"> 

function myfun(){ 
    window.location.search += '&reload=true'; 
} 
function onrefresh(){ 
if(gup("reload")=='true'){ 
    // DO whatever want to do. 
    } 
} 


function gup(name){ 
    name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); 
    var regexS = "[\\?&]"+name+"=([^&#]*)"; 
    var regex = new RegExp(regexS); 
    var results = regex.exec(window.location.href); 
    if(results == null) 
     return ""; 
    else 
     return results[1]; 
} 
+1

正是我要做的,只是用'if(window.location。 indexOf('reload')> - 1)' – davidkonrad

2
<a href="javascript:abc();"><script>function restartall() { 
    $('#text').append('hello'); 
} 

function abc() { 
    document.location.reload(); 
    restartall(); 

}</script> 
+1

這就是你需要的。 – Sudarshan

+1

我以爲他希望'restartAll'被執行_after_' reload()' – davidkonrad

+0

nop其不完美的工作... –

0

試試這個

<script> 
    function restartall(){ 
     $('#text').append('hello'); 
     document.location.reload(); 
    } 
</script> 

<input type="button" onclick="restartall()" value="Referash Map" /> 
<div id="text"></div>