javascript - 重新创建提示(); <input> 的功能

标签 javascript

我的 JS 代码结构有一个奇怪的问题。它是一个从 Brainfuck 到 JavaScript 的转换器。然后它运行它生成的代码。

考虑到这一点,我注意到 prompt(); 有问题命令。在某些情况下,它似乎在上一个命令(更改 DOM)完成之前显示提示框。

我的解决方案是显示一个 <input type="text">框,初始设置为 display:none在 CSS 中。但是,我需要一种方法来等待输入发生变化。我试过这段代码:

while (document.getElementById("input") == ""){}

但这会卡住 DOM。我需要一种被动等待任何用户输入的方法,然后继续执行脚本。

请记住,我不能使用 onkeydown、外部函数等。

谢谢!

最佳答案

除了使用 alertconfirmprompt 等 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 - 重新创建提示(); &lt;input&gt; 的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39687753/

相关文章:

javascript - 背景图像 jQuery 不工作,我做错了什么?

javascript - 使用 Marionette.CompositeView 进行单元测试

javascript - 在 HTML 中裁剪视频?

javascript - 如何在javascript中绘制图形?

javascript - IRR和PMT函数在JavaScript中有没有准确的实现?

javascript - 在 Firefox 中,输入范围在 mouseup 上触发 "input"事件

JavaScript 碰撞检测错误

javascript - 如何在 dojo 小部件上使用 dojo/behavior?

javascript - 三.js 加载器

javascript - 从 MongoDB 中的模式内部返回一个 json