javascript - 函数未定义,但我已经定义了它
问题描述
我是一名 PLC 程序员,我制作了一个 html 页面,我需要它每秒刷新一次脚本,所以在我的身体里我放置了:
<body onload="changeimage()">
.... code ....
</body>
和脚本:
<script>
setInterval(function changeimage() {
var sonde = ["Sonda1","Sonda2","Sonda3","Sonda4"];
var tsonde = ["tsonda1","tsonda2","tsonda3","tsonda4"];
var temperature = [:="OUTPUT".AlarmTemp.Sonda1:,:="OUTPUT".AlarmTemp.Sonda2:,:="OUTPUT".AlarmTemp.Sonda3:,:="OUTPUT".AlarmTemp.Sonda4:];
var hotcold = document.getElementById("Fiocco");
if (:="OUTPUT".Stagione.Estate: > 0){
hotcold.src="sun.jpg"}
if (:="OUTPUT".Stagione.Inverno: > 0){
hotcold.src="Neve.png"}
for (x in temperature) {
var icona = document.getElementById(sonde[x]);
if (temperature[x] > 0 ){
icona.src="Paverde.png"
}
else{
icona.src="Parossa.png"
}
}
}, 1000);
</script>
无论如何我得到了错误:ReferenceError: changeimage is not defined
PS:不要被以“:”开头的数组所迷惑,是PLC语法,是正确的。
@ 即使去掉 setinterval 选项,脚本也不行。
解决方案
首先定义函数并确保脚本已加载。
代码笔示例:https ://codepen.io/mikila85/pen/NWPvQPE
function changeimage() {
setInterval(function() {
var sonde = ["Sonda1","Sonda2","Sonda3","Sonda4"];
var tsonde = ["tsonda1","tsonda2","tsonda3","tsonda4"];
var temperature = [:="OUTPUT".AlarmTemp.Sonda1:,:="OUTPUT".AlarmTemp.Sonda2:,:="OUTPUT".AlarmTemp.Sonda3:,:="OUTPUT".AlarmTemp.Sonda4:];
var hotcold = document.getElementById("Fiocco");
if (:="OUTPUT".Stagione.Estate: > 0){
hotcold.src="sun.jpg"
}
if (:="OUTPUT".Stagione.Inverno: > 0){
hotcold.src="Neve.png"
}
for (x in temperature) {
var icona = document.getElementById(sonde[x]);
if (temperature[x] > 0 ){
icona.src="Paverde.png"
}
else{
icona.src="Parossa.png"
}
}
}, 1000);
}
推荐阅读
- reactjs - 使用 React JS 将数据发布到 API
- c# - VersionControl TFS API 以编程方式获取搁置的项目 c#
- python - 如何使用 Python 通过按钮下载 csv?
- multithreading - RxJava:理解并发执行
- python-3.x - 使用python3.6在html表中抓取动态数据
- docker - Kafka:使用 wurstmeister/zookeeper 映像在 Docker 中设置 Kafka Zookeeper 集群时出错
- sql - XML 解析 - SQL Server
- kubernetes - 删除 pod 后 kubernetes pod 无法挂载 gcloud 持久化磁盘
- reactjs - 如何在 React JS 中渲染子对象数组?
- ajax - 在 Scrapy 中模拟 POST 请求时使用哪些请求标头?