1

我使用了这段代码:

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

我想当用户单击警报的“确定”时,它会转到另一个 php 页面。

  • 当用户单击确定时,我如何理解?
  • 以及如何链接到另一个页面?通常我使用这种方式:

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

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

谢谢

4

4 回答 4

8

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

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

于 2013-06-19T15:06:43.827 回答
2

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

  function finish()
  {
    alert("Inserted!");
    window.location = 'newpage';
  }
于 2013-06-19T15:05:44.710 回答
1

当用户单击确定时,我如何理解?

alert()正在阻塞,脚本执行在显示时暂停。当用户单击确定时,脚本将继续运行。只需在警报语句之后放置您想要的任何其他代码。

以及如何链接到另一个页面?

您可以设置location一个新的 URL...</p>

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

…但一般来说,您最好将该函数作为常规链接的单击事件处理程序运行。

于 2013-06-19T15:06:14.957 回答
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 向用户提出问题,并根据用户响应返回真/假。这可能是您应该使用的。

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

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 绑定,则该表单实际上无论如何都会被提交,除非您绑定到提交事件并阻止它。

于 2013-06-19T15:10:45.897 回答