警报框上的SetTimeOut

时间:2014-08-14 01:47:06

标签: javascript alert

感谢您在本论坛中提供的所有帮助。 我代表其他人表示感谢,并希望让您明白这一点。

与此同时,我需要解决这个问题。 在警报框上设置超时。 也就是说,

<?php
echo '
<script type="text/javascript">
var t = setTimeOut(5000); //5secs
alert("Your score is: ". $score. '.");
if(t === TRUE){
//clear alert box
this.alert.OK = true;
window.location = "index.php";
}
</script> ';
?>

请不要介意我的psudo代码。这只是我理解javascript工作的最简单方式。

我知道一切皆有可能 - 可以通过某种方式应对挑战。但我真的没有实际的解决方案。而且我把它扔给了家里的大师。

感谢您期待我们一起度过这一挑战。 我仍然是你的忠实朋友。

3 个答案:

答案 0 :(得分:2)

您无法超时提醒。它是一个低级JavaScript构造,它创建一个本机应用程序对话框,需要在用户销毁之前进行确认。如果你想&#34;抛出数据&#34;对于用户,您必须使用实际的HTML对话库(或自己滚动)。

另外,请勿使用alert()。当我们别无选择时,这很棒,但是现在你使用console.log(...)来简单地将数据(任何数据,数字和字符串,以及整个对象和HTML元素!)记录到开发工具控制台(每个浏览器都带有一个烤好的,并且有一百万个和一个JS库,它们将为用户生成漂亮的模态(这些天唯一合法使用的警报是强制停止整个页面处理线程...并且关闭我无法想到你为什么要这样做的一个原因。

那就是说,你提供的PHP代码完全没有意义。它实际上是一个.js文件,扩展名为.php。删除那些php标签,将其保存为.js,然后只保存<script src="thatfile.js"></script>。不要让PHP做一些你根本不需要PHP的东西。

答案 1 :(得分:0)

浏览器不会允许超时警报,至少到现在为止是不可能的。但这里有可能的方法。使用html和css创建一个消息框。

PHP:

<?
  ... what required to compute/fetch the score
?>
<html>
  <head>
   <meta http-equiv="refresh" content="5;index.php"/><!-- redirect after 5 secs -->
  </head>
  <body>
   <div class="message-box">
    <label>Your score is:<?$score?></label>
   </div>
  </body>
</html>

元标记将告诉浏览器在5秒后重定向到给定页面。表示用php变量给出的动态分数向用户显示页面时的意思。

编辑:如果您不允许使用元标记,请尝试使用

<?
  ... what required to compute/fetch the score
?>
<html>
  <body>
   <div class="message-box">
    <label>Your score is:<?$score?></label>
   </div>
  </body>
  <!-- not a good practice to put tag here, but it will do the trick to redirect after page is loaded-->
  <script>
    setTimeout(function(){
       location.assign("index.php");//<-- where to redirect
    }, 5000); //<-- redirect after 5 secs
  </script>
</html>

答案 2 :(得分:0)

是不可能的:

var t = setTimeOut(function(){
alert("Your score is: ". $score. '.");
},5000); //5secs