javascript - Corvid 页面代码和 HTML 元素之间的消息传递,获取 [object Object] 而不是实际消息,如何更正我的代码?
问题描述
我正在尝试使用 Wix 的 Corvid 了解页面代码和 HTML 元素之间的消息传递。
我在页面上有以下 2 项:
- 一个名为“html4”的 HTML 元素
- 一个名为“text32”的文本元素
我在 HTML 元素“代码”部分中有一个代码,它等待页面加载,然后向页面发送一条消息(“来自 iFrame 的消息”),然后等待来自页面的答案。得到答案后,显示答案:
<html>
<head>
<script>
window.addEventListener('load', function() {
window.parent.postMessage("Message from iFrame", "*");
window.onmessage = (event) => {
if (event.data) {
document.getElementById("theLabel").innerHTML = event.data;
}
};
})
</script>
</head>
<body>
<span id="theLabel" class="label">HTML Label</span>
</body>
</html>
页面代码等待来自 HTML 元素的第一条消息,然后向它发送答案。
$w.onReady(function () {
// TODO: write yor page related code here...
$w("#html4").onMessage( (event) => {
let receivedData = event.data;
$w('#text32').text = receivedData;
$w("#html4").postMessage("answer from Corvid");
} );
});
在页面上,文本元素在上面,HTML 元素在下面。所以我期待看到:
-来自 iFrame 的消息
- 来自科维德的回答
但相反,我看到了这个:
-来自 iFrame 的消息
-[对象对象]
然后几秒钟后,“[object Object]”在几毫秒内变为“来自 Corvid 的答案”,然后再次变为“[object Object]”。
我想要做的是正确地传达实际信息。
解决方案
推荐阅读
- c# - Linq/Entity Framework 查询无法识别我的所有范围变量
- javascript - 在按钮单击时将字符串插入 div 并在下次单击之前将其清除
- algorithm - 对大数组进行排序,保留一些元素(每种语言)
- javascript - 如何按 id 打印所有元素(JS,PHP)
- c# - SRP 和类内的附加逻辑
- swift - Swift 默认重载不可用 - 找不到 SCNReferenceNode(named: )
- user-interface - 如何将屏幕的一部分“流式传输”到另一部分
- asp.net-mvc - ASP.net MVC - 视图中的动态引导进度条
- parsing - 在 Julia 1.xx 中解析无符号整数数组
- python - 没有 PANDAS 的 Python 聚合