用户单击HTML链接后是否可以设置超时?

时间:2015-09-24 15:52:03

标签: javascript html

javascript新手在这里,但我想知道是否有可能在用户点击HTML链接后设置超时,现在我想知道这是因为我正在制作一个简单的数学游戏,它使用警报方法,这意味着一旦用户点击链接,放置链接的页面仍然可以在后台看到,这看起来并不是很好。我环顾四周,发现了一个名为" window.setTimeout"我想知道我是否可以将该方法绑定到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>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:1)

例如,如果HTML中有<a id="foo" href="#"> </a>,则可以执行

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

答案 1 :(得分: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/

答案 2 :(得分: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>