2015-09-24 101 views
0

javascript新手在這裏,但我想知道是否有可能在用戶點擊HTML鏈接後設置超時,現在我想知道這是因爲我正在做一個簡單的數學遊戲,它使用警報方法,這意味着一旦用戶點擊鏈接,鏈接所在的頁面仍然可以在背景中看到,這看起來不太好。我環顧四周,發現了一個名爲「window.setTimeout」的方法,我想知道是否可以將該方法綁定到HTML代碼中的定位標記。謝謝:)用戶點擊HTML鏈接後可以設置超時嗎?

我的代碼:(注遊戲還沒有結束:))

<html> 
 
<head> 
 
    <title>Maths Game 0.1 Beta</title> 
 
    <link rel="stylesheet" type="text/css" href="styling.css"> 
 
    <script type="text/javascript"> 
 
    var num1 = prompt("What is 2x10?"); 
 
    if (num1 == '20') { 
 
     alert("Nice Job!"); 
 

 
    } else { 
 
     alert("Oh well, try again."); 
 
    } 
 
    </script> 
 
</head> 
 
<body> 
 
</body> 
 
</html>

+1

是的,這是可能的。搜索谷歌搜索「javascript爲鏈接添加超時」 –

+0

您無法用超時中斷'prompt()'。你需要爲此使用HTML對話框。 – Barmar

+0

感謝大家的回覆,從未有人在任何論壇上快速回復我。 –

回答

1

例如,如果你在你的HTML一個<a id="foo" href="#"> </a>,一旦能做到

document.getElementById("foo").onclick = function() { 
    setTimeout(function() { 
     // do stuff 
    }, 5000); // triggers the callback after 5s 
}; 
+0

嗨,我已經嘗試了大多數這些方法,並且在測試之後出現同樣的問題,單擊鏈接,提示不顯示。 –

0

試試這個:

<html> 
    <head> 
    <title> Maths Game 0.1 Beta</title> 
    </head> 
    <body> 
    <a href="#" onclick="setTimeout('question()', 5000);">First Question</a> 
    <script type="text/javascript"> 
    function question(){ 
    var num1 = prompt("What is 2x10?"); 
    if (num1=='20'){ 
     alert ("Nice Job!"); 
    } 
     else {alert ("Oh well, try again.");} 
    } 
    </script> 
    </body> 
</html> 

小提琴: http://jsfiddle.net/h7xpxzgg/

0

如果我理解正確的話,你要實際加載新的一頁,然後警報彈出,對不對?

那麼,一旦用戶離開了你的頁面,超時將不會運行。

但至少有兩種方法可以做到你的要求:

  1. 假頁面。
    您可以包含當前頁面上的「下一頁」上的所有內容,但用display:none隱藏該內容,並且一旦用戶單擊鏈接,首先使原始頁面的內容不可見,然後將內容顯示「下一個」頁面,然後顯示警報。

  2. 將值傳遞到下一頁,並在那裏執行警報。
    因爲這是所有客戶端,我建議使用window.location.hash,像

    在當前頁面:

    <script> 
    document.write('<a href="next_page.html#' + prompt('What is 2x10?') + '">Next page</a>'); 
    </script> 
    

    在接下來的頁面:

    <script> 
    var num1 = window.location.hash.substr(1); // To get rid of the # 
    if(num1 == '20') 
    { 
        alert("Nice Job!"); 
    } 
    else 
    { 
        alert("Oh well, try again."); 
    } 
    </script>