在警报时检测到OK

时间:2013-06-19 15:03:53

标签: javascript

我使用了这段代码:

 <script type="text/javascript">
  function finish()
  {
    alert("Inserted!");
  }
</script>

我希望当用户点击“OK”警报时,它会转到另一个php页面。

  • 当用户点击“确定”时,我该怎么说?
  • 以及如何链接到另一个页面?通常我会这样使用:

    <button type="submit" onclick="window.open('home.php')"> Insert </button>
    

    但在警示示例中没有按钮!

感谢

4 个答案:

答案 0 :(得分:8)

alert()正在阻止:浏览器将在显示alert()时停止执行任何Javascript代码。 alert()之后的下一行代码只会在清除警告框时执行。

因此,您无需做任何特别的事情来判断警报是否已被清除;只需将其余代码放在alert()之后运行。

答案 1 :(得分:2)

alert没有结果。您可以使用window.location重定向。

  function finish()
  {
    alert("Inserted!");
    window.location = 'newpage';
  }

答案 2 :(得分:1)

  

当用户点击“确定”时,我该怎么说?

alert()正在阻止,脚本执行在显示时暂停。当用户单击“确定”时,脚本将继续运行。只需在警告声明后输入您想要的任何其他代码。

  

以及如何链接到其他页面?

您可以将location设置为新网址...

location = "http://example.com/";

...但一般来说,最好将该功能作为常规链接的点击event handler运行。

答案 3 :(得分:0)

您可以致电window.location=URL重定向。

警报是模态的,它只是提供信息然后被解雇。警报消息解除后,脚本将继续执行。

如果您想在用户阅读提醒消息后重定向,可以使用:

function finish() {
  alert("When you click OK you will go to a new page.");
  window.location = "http://www.yoururl.com";
}

另一方面,Confirm会给用户一个问题,并根据用户响应返回true / false。这可能是您应该使用的。

在这种情况下,您的功能可能如下所示:

function finish() {
  var continue = confirm("Finish and go to the next page?");
  if (continue) {
    window.location = "http://www.yoururl.com";
  }
}

使用完成功能,只需将其连接到按钮即可。最直接的方式就像你在问题中所做的那样:

<button type="submit" onclick="finish()"> Insert </button>

但请注意,如果您的按钮位于表单中并且您使用onclick进行绑定,则表单实际上将被提交,除非您绑定到submit事件并阻止它。