[英]assign variable to img src
我有一个无法编辑的变量,名为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
setinterval
setInterval(updateChart, 5000);
每隔5秒就会调用updateChart
在您的updateChart
更新
x = parseInt(document.getElementById("reg0001").value,10);
要么
x = Number(document.getElementById("reg0001").value);
更新价值
document.getElementById("reg0001").value="2"
根据OP需要的更好的方式
JS
setInterval(updateChart, 5000);
var x=true;
function updateChart() {
if (isIE) { // for Internet Explorer
if (x) {
document.state1.src = "greenlight.jpg";
x=false;
}
else {
document.state1.src = "redlight.jpg";
x=false;
}
}
}
//no need for getting any value if you just want animation
我建议你做
var tId;
window.onload=function() {
tId = setInterval(function() {
var x = parseInt(document.getElementById("reg0001").value,10);
document.state1.src = x == 0?"greenlight.jpg":"redlight.jpg";
},5000);
}
如果您没有从其他地方更新reg0001字段,那就没有意义了。 所以也许您需要使用AJAX来获取价值
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.