【发布时间】:2017-05-02 08:58:28
【问题描述】:
我想将Sk.inputfun() 更改为Skulpt,让用户输入<textarea> 并点击ENTER 键提交。我需要向 Skulpt 传递一个获取用户输入的函数,但是,除了prompt() 之外,我找不到任何方法来执行此操作。
我能想到的唯一方法是使用setTimeout() 延迟返回,直到事件触发回车键按钮并更改标志。
var enterPressed = false;
$("#output").keyup(function(e){
if((e.keyCode || e.which) == 13) { //Enter keycode
enterPressed = true;
}
});
然后等待我的改变:
Sk.configure({
inputfun: function (prompt) {
function checkFlag() {
if(enterPressed) {
enterPressed = false
return $('#output').val();
} else {
window.setTimeout(checkFlag, 100);
}
}
return checkFlag();
},
inputfunTakesPrompt: true,
output: outf,
read: builtinRead
});
但是,由于某些原因,这不起作用。 a) timeout 函数不能返回值,b) Timeout 甚至没有延迟返回函数,它只是什么都不返回。
我也尝试过使用.done(),但无法使用。
似乎没有任何方法可以在网上找到,任何帮助将不胜感激!
【问题讨论】:
标签: javascript jquery html skulpt