我有这个在线代码执行可编辑 div,它目前通过使用名为 parse 的函数逐步工作。您输入一些东西(例如 7+5)并按回车键,您会在下面的新行上得到结果并创建一个新的输入 div,但是如果您返回到之前的可编辑输入 div 并输入一个新的输入并按回车键它无法正常工作,因为默认情况下会创建新的输出和输入 div,并且不会重新评估新代码。
请注意,如果您在输入框(可编辑的 div)中的输入末尾放入 : 则不会创建新的输出 div。输出在视图中隐藏。这是为了避免不需要显示的长输出而设计的。
我还尝试编写一个新函数 parse2() 但随后逐步评估停止工作。让两者(逐步返回到旧的可编辑 div 并重新评估)同时工作似乎非常困难。如何才能做到这一点?我想我需要在函数 parse() 中使用一些 if 语句来确定它是正在执行的新输入代码还是正在重新评估的旧输入代码。我也尝试为输入 div 分配一个数字,但我没有设法让它工作。
function parse2(e) {
if (e.keyCode == 13) {
event.preventDefault();
if (document.getElementById("output") == null) {
CreateOutputDiv();
CreateInputDiv();
// calculates and assign values to output div
var d1 = document.getElementById(JSON.stringify(input)).innerText;
console.log("in = " + d1);
var d2 = eval(d1);
console.log("out = " + d2);
output.innerHTML = d2;
document.getElementById("count").value += '\n' + '\n' + cc;
} else if { //re-evaluates inputbox = works
var d1 = document.getElementById(JSON.stringify(input)).innerText;
console.log("new in = " + d1);
var d2 = eval(d1);
console.log("new out = " + d2);
output.innerHTML = d2;
input.focus();
} else { //re-evaluates inputbox = works
CreateOutputDiv();
var d1 = document.getElementById(JSON.stringify(input)).innerText;
console.log("new in = " + d1);
var d2 = eval(d1);
console.log("new out = " + d2);
output.innerHTML = d2;
input.focus(); }}}
回首忆惘然
相关分类