这是场景。我有一些可以即时生成的 JavaScript 代码。所以,我没有使用prompt()
打开一个输入框来读取用户输入,而是制作了一个自定义元素。因为我可以设置自定义输入框的样式,而不是使用普通输入框。
因此,显示自定义输入框的功能类似于,show_input()
并且这个动态生成的代码在最后使用eval()
. 所以在代码中,在调用该show_input()
函数之后,程序应该等到用户输入值并按下按钮(我定制的输入表单中的按钮)。并且在生成的代码中会多次调用这个函数。
我不确定如何找到解决方案。也就是说,让它的行为就像prompt()
停止整个代码的执行一样。
我尝试过的是,在我们的自定义输入框中使用一个布尔标志,当用户输入值并按下按钮时会设置该标志。因此,当show_input()
调用 my 时,它会显示自定义输入框,然后进入一个无限循环,该循环仅在设置此布尔标志时才会停止。但这会冻结网页,使其没有响应。所以,这不是一个很好的解决方案。
有什么方法可以模仿该功能的prompt()
工作原理。我的意思是,暂停整个页面,直到用户按下按钮?
setTimeout()
在我的情况下,函数不是一个好的选择。因为原因是,我生成的代码看起来像这样:
statement1;
statement2;
show_input(); //call the function to show my custom inputbox
statement3;
show_input();
statement4;
statement5;
// etc...
因此,在 之后statement2
,函数调用用于显示自定义输入框,要求用户输入值并按下按钮。只有在按下此按钮后,它才应该转到statement3
。到那时,它应该等待用户按下我的自定义输入框中的按钮。
我正在使用 jQuery,并且该按钮添加了一个单击事件。
以上代码在运行时生成,使用eval()
任何想法将不胜感激。谢谢