如何自动启动javascript并让它等待输入

How to autmatically start javascript and keep it waiting for input

本文关键字:等待 输入 自动启动 javascript      更新时间:2023-09-26

我目前正在用javascript编程一个财务计算器,它运行良好。让我困扰的一件事是,用户必须按下一个按钮来处理输入。我希望脚本以预设值开始加载,并在后台继续运行,等待用户输入。

我曾尝试在函数的开头添加onload=(只有一个),但之后脚本就无法继续运行了。

您可以使用setInterval并在回调函数中侦听用户输入。

如果您不需要任何常量处理,而只需要在用户输入时运行脚本,那么只需使用侦听器,而不需要setInterval。

如果没有看到你的代码,很难给你一个更准确的答案。


这里有一个例子:

var a = document.getElementById('a');
var b = document.getElementById('b');
function someProcess() {
  a.style.width == '100px' ? a.style.width = '105px' : a.style.width = '100px';
}
setInterval(someProcess, 1000);
window.addEventListener('keyup', function(e) {
  if (e.keyCode == 49)
    a.style.color = 'yellow';
  else if (e.keyCode == 50)
    b.style.color = 'yellow';
})
div {
  width: 100px;
  margin: 4px auto;
  background: #ccf;
  border: 2px solid #99f;
  text-align: center;
}
<div id="a">Interval</div>
<div id="b">No Interval</div>
<p>Click here to get focus and then press 1 or 2 on your keyboard</p>


如果你只需要在输入字段中有按键时调用你的函数,你可以这样做:

var res = document.getElementById('r');
function recalc(v) {
  res.textContent = v * v;
}
recalc(0);
The square of <input type="number" onkeyup="recalc(this.value)" value="0" /> is <span id="r"></span>

在不同的inputtrigger functions 上使用event listeners

尝试使用以下代码

<input id="input" type="text"/>
<div id="text"></div>
document.getElementById('input').onkeydown = calculate;
function calculate() {
    document.getElementById('text').innerHTML = document.getElementById('input').value;
}

这是一个演示

对于计算器中的输入元素,比如html中的input标记,调用onkeyup上的函数。例如:

<input onkeyup="keypressed()"/>

这样,每当按下任何键时,都会调用javascript中的函数keypressed(),并计算该函数中的结果。