Emscripten:将提示替换为控制台(某种类型)

Emscripten: replacing prompt with console (of some sort)

本文关键字:种类 类型 控制台 提示 替换 Emscripten      更新时间:2023-09-26

我有(像python shell一样的交互式)C++控制台应用程序,并开始玩Emscripten(从C++转换为JS)。一切都很好,但我希望JS的焦点窃取提示被替换为更少的。。。古怪的

我尝试过的是:我为生成的html添加了一个输入文本区域和一个按钮,并用while循环替换了提示调用行(循环直到用户按下按钮)。这并没有很好地工作,空循环冻结了浏览器(这可能是意料之中的事,但JS中没有睡眠功能)。

简而言之,我想要的是这种布局:

output textarea / output textarea / output textarea / output textarea
output textarea / output textarea / output textarea / output textarea
output textarea / output textarea / output textarea / output textarea
output textarea / output textarea / output textarea / output textarea
input textarea <ok button>

和行为:

while (1)
  let program work until input requested
  wait for user to clik on the <ok button> above

有什么简单的方法可以通过修改(emcc)生成的JS代码来实现这一点?(我知道如何通过修改(我的)原始代码来实现这一点,但如果可能的话,我希望避免这种情况)

不确定你到底想做什么。

不过,请先阅读有关浏览器限制的Emscripten文档。

您可以使用window.setTimeout每N毫秒注册一次回调,并执行输出文本区域

如果你想"等待"用户输入,最好将控制权交给浏览器主循环,然后点击按钮调用回调,回调将恢复处理(使用文本输入)。