8

我的客户希望在进入网页时显示警报。

但是,在单击“确定”之前,警报会阻止页面的进一步加载,并且页面需要在显示警报时在后台加载。

一种解决方案是使用 HTML 和 CSS 的自定义警报,但这并不能满足客户的需求。

是否有使用“核心 javascript”或 jQuery 的解决方案来允许页面在显示警报时加载?谢谢。

4

3 回答 3

8

您应该通过 setTimeout 运行它:

setTimeout(function() { alert('hello world'); }, 1);

此处显示: 是否存在不暂停脚本的 JavaScript 警报?

于 2013-06-04T08:59:37.890 回答
3

编辑

有关 Firefox 中的解决方法,请参阅@FunKy 的答案。(非常有意思!)


简单的答案是否定的,这是不可能的!

原因是本机alert()对话框是 UI 阻塞和 javascript 是单线程语言。

您必须使用自定义的对话消息。

但是,如果在阻塞 UI 之前完成了一些 ajax 请求,当alert()对话框关闭时,ajax 响应将/应该可用。因此,您仍然可以在显示警报之前发出一些 ajax 请求。

于 2013-06-04T08:59:26.920 回答
0

您可以使用自定义对话框而不是警告框(阻止页面加载)。例如,Jquery UI Dialog很容易使用(但是有很多插件可以做同样的事情)。

于 2013-06-04T09:04:36.287 回答