好吧,这就是我想做的:我有一个文本字段和一个文本区域,它们都充当控制台窗口。我正在开发一个非常基本的解释器模拟,它有自己的编程语言和 javascript (jQuery),所以当我开始执行用户之前键入的程序时,我会遍历所有指令,并在到达特殊指令时 (" leer") 用户必须在此控制台中输入一些内容并暂停程序的执行,我知道当按下 'return' 键时用户已完成输入。当这种情况发生时,程序将继续其正常的执行流程。
现在,此行为与确认框的行为非常相似,因为它等待输入,并且当用户按下任何按钮(是/否)时,执行将继续。
我希望我已经解释得足够清楚,以便你们所有人都知道我的问题是什么。我知道在这里放置一些代码会很棒,但我真的不知道它的哪一部分会有所帮助,所以如果您需要一些代码,请告诉我。
这是页面的外观。
这是用于执行每个程序的代码:
this.ejecutarPrograma = function(pidprograma) {
var programa = this.listaProgramas[pidprograma];
if(programa == undefined) throw "ERROR!, PID no encontrado"
var posIni, posEnd;
posIni = programa.obtenerRbp();
posEnd = programa.obtenerRlc();
this.cp = posIni;
var temp = this.memoria[this.cp].split(/\s+/);
while (this.cp < posEnd || temp[0] != "retorne") {
try {
if (temp[0] == "vaya") {
this.cp = ACCIONES[temp[0]](this.cp, temp[1], programa);
}
else if (temp[0] == "vayasi") {
this.cp = ACCIONES[temp[0]](this.memoria[0], this.cp, temp[1], temp[2], programa);
}
else if (temp[0] == "nueva" || temp[0] == "etiqueta" || temp[0] == "retorne") {
// nada de nada por aca porque estos ya estan implementados
this.cp++;
}
else {
this.memoria[0] = ACCIONES[temp[0]](this.memoria[0], temp[1], programa);
this.cp++;
}
var temp = this.memoria[this.cp].split(/\s+/);
}
catch (e) {
throw "Linea " + (this.cp).toString() + ": " + e;
}
}
};
ACCIONES 是一个关联数组,它保留指令的名称,并且作为一个值具有函数,指令“leer”是空的,它只是从输入中获取一个值并将该值复制到程序的变量中
感谢大家的帮助。