我的 JS 代码结构有一个奇怪的问题。它是一个从 Brainfuck 到 JavaScript 的转换器。然后它运行它生成的代码。
考虑到这一点,我注意到 prompt();
有问题命令。在某些情况下,它似乎在上一个命令(更改 DOM)完成之前显示提示框。
我的解决方案是显示一个 <input type="text">
框,初始设置为 display:none
在 CSS 中。但是,我需要一种方法来等待输入发生变化。我试过这段代码:
while (document.getElementById("input") == ""){}
但这会卡住 DOM。我需要一种被动等待任何用户输入的方法,然后继续执行脚本。
请记住,我不能使用 onkeydown、外部函数等。
谢谢!
最佳答案
除了使用 alert
、confirm
、prompt
等 native 函数外,没有其他方法可以停止脚本执行。
尝试将您的提示包装在 setTimeout
中。从值 0 开始,看看它是否有效。
setTimeout(function () {
prompt('your prompt');
}, 0);
使用值为 0 的 setTimeout
会将提示的执行推到事件循环的后面,并且可能会在 DOM 更新后运行。
在此处阅读有关此技术的更多信息:https://www.quora.com/What-does-setTimeout-with-a-0ms-delay-do
关于javascript - 重新创建提示(); <input> 的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39687753/