是否可以创建一个自定义的模态消息,以阻止脚本的执行,直到用户输入?
例如,如何在不使用本机窗口警报/提示功能的情况下实现此目的?
setInterval(function(){
alert('Click OK to Continue'); // timing stops until user hits ok
},4000);
我知道你可以让你的自定义对话框在用户输入时调用回调函数,但我想要能够强制实现这种阻塞行为。
是否可以创建一个自定义的模态消息,以阻止脚本的执行,直到用户输入?
例如,如何在不使用本机窗口警报/提示功能的情况下实现此目的?
setInterval(function(){
alert('Click OK to Continue'); // timing stops until user hits ok
},4000);
我知道你可以让你的自定义对话框在用户输入时调用回调函数,但我想要能够强制实现这种阻塞行为。
function timeoutFunction() {
alert('Click OK to Continue'); // timing ACTUALLY stops until user hits ok
setTimeout(timeoutFunction, 4000);
}
setTimeout(timeoutFunction,4000);
这是一些内容,你无法精确实现(请参见上文中的灯箱),除非使用本地弹出窗口。
即使是while(true)
循环也通常不会像弹出窗口一样阻塞 - 至少火狐浏览器会在脚本运行时间过长后弹出“停止脚本”消息,我相信其他主要浏览器也会有类似的提示。
alert
,例如一个 ajax 调用或类似疯狂的东西。如果你的生命取决于此,你会如何做到? - Tomáš Zatoalert
是语言的一部分,内置于浏览器中,所以... 不行。游戏结束。 - Jeff不行,在浏览器中至少不能这样做。JavaScript API 大多数都是异步的。alert
/prompt
是例外。然而,使用异步提示和回调并不是很难。
while(true) { 1; }
只是这样(即不太)有趣,并且会导致页面无响应.. - user166390while(true)
不是 API,而是语言结构! - Emil IvanovgetElementById
。它不是异步的。 - user166390