我有一个无法编辑的变量,名为reg0001,它来自我正在使用的板上的固件。 reg0001是0或1,我想制作一个实时更新的页面,如果reg0001为0,则显示绿色img,如果为1,则显示红色,这是我到目前为止的内容。

<div id="Oobj6"style="position:absolute;left:270px;top:60px;width:20px;height:53px;overflow:hidden;">
<input type="text" id="Gform4" class="Body-C" name="reg0001" value="%d" >
<div>
<img id="Ggeo1" src="whitelight.jpg" alt="" name="state1">
</div>


和javascript:

function updateChart() {
    var x;
    if (isIE) { // for Internet Explorer

    x = parseInt(document.getElementById("reg0001").value);
    if (x == 0) {
        document.state1.src = "greenlight.jpg";
        }
    else {
        document.state1.src = "redlight.jpg";
    }


现在该脚本可以工作,但是即使reg0001在后台更改,我也必须不断刷新页面才能更改图像。我对javascript不太了解,我希望有人可以指出正确的方向。

最佳答案

您需要使用SetInterval将其循环:

 updateChart();
 setInterval(updateChart, 5000); //Cycles every 5 seconds


如果需要管理循环,则可以记录SetInterval生成的间隔ID:

 var intervalId = setInterval(function().... //Mindful about the scope of intervalId here!


然后,您可以停止使用clearInterval循环:

 clearInterval(intervalId);


参考:https://developer.mozilla.org/en/docs/Web/API/window.setInterval

10-05 20:52