我试图从函数节点(node-red)获取运行时值(msg.payload)并将其提供给模板节点(node-red)以根据输入显示适当的图像。我使用过下面的代码,但图像不会根据输入的选择而改变。下面是代码。请查看并向我提供一些见解或需要更改的内容才能使其正常工作。
<html>
<head>
<script type="text/javascript">
function displayImage() {
var j=parseInt({{payload}});
document.getElementById("img").src = images[j];
}
function startTimer() {
setInterval(displayImage,3000);
}
var images = [];
images[0] = "image1.jpg";
images[1] = "image2.jpg";
images[2] = "image3.jpg";
</script>
</head>
<body onload="startTimer()">
<img id="img" src="image1.jpg"/>
</body>
</html>
答案 0 :(得分:1)
使用console.log(消息)并检查:
答案 1 :(得分:0)
您正在处理NodeRED。了解有效负载参数的最简单方法是使用Debug节点(深绿色节点)并将其附加到与模板节点相同的输出。然后,您将很快看到它的构成。您的有效负载很可能是JSON对象。像这样:
{ "name" : "Peter",
"color" : "Blue",
"image" : "2"
}
......或类似的。
然后,您只需更改{{ }}
中的内容,以反映JSON对象中包含您感兴趣的数字的变量。例如:
{{payload.image}}
仔细检查您的功能节点。如果它没有以return语句结尾(通常是return msg
),那么您根本就没有任何输入。