postMessage() 生成错误“未定义不是函数”
postMessage() generates error "undefined is not a function"
我正在尝试让postMessage()
在iframe和我的主网站之间进行通信。但是,使用 MDN 上示例代码中给出的确切语法,我遇到了一个很好的Undefined is not a function
错误。我已经尝试了几件事,例如在Javascript中初始化iframe并将其附加到我的页面,但这给我留下了同样的错误。同样,有单独的选择器来选择我的 iframe。
我有以下Javascript代码:
<script type="text/javascript">
$(document).ready(function() {
$('.editor').postMessage("A", "domain here");
});
function receiveMessage(event)
{
if (event.origin !== "domain here")
return;
// Do something
}
window.addEventListener("message", receiveMessage, false);
</script>
上面的脚本尝试在页面上向我的 iframe 发送消息,如下所示:
<iframe src="domain here/frameListener.html" class="editor"></iframe>
然后,它具有一个功能receiveMessage
来捕获作为对主网页的响应而发送的任何消息。最后但并非最不重要的一点是,我已经尝试了这个问题中给出的答案: 但这并没有解决我的问题。因此,它不是重复的。
如何摆脱此错误消息?
postMessage
不是jQuery函数,所以你需要获取实际的window
DOM元素并在其上调用它:
$('.editor').get(0).contentWindow.postMessage("A", "domain here");
此外,您需要访问iframe
的contentWindow
属性。以下是 MDN 文档的摘录:
otherWindow.postMessage(message, targetOrigin, [transfer]);
otherWindow
对另一个窗口的引用;这样的引用可能是例如,使用 iframe 的 contentWindow 属性获取元素,由 window.open 返回的对象,或者按命名或数字返回的对象窗口框架上的索引。
相关文章:
- Jquery未定义函数正在停止其他操作
- 在不破坏未定义函数的情况下,对多个视图使用单个js文件
- Uncaught ReferenceError:尝试在Android网络视图中访问时未定义函数
- jQuery文件上传和验证未定义函数
- 引用错误:未定义函数-Firefox
- res.render中出错,未定义函数
- 神秘的未定义函数
- 尝试使用函数和Ajax修改值时未定义函数
- 引用错误:未定义函数
- ReferenceError:未定义函数
- 在 Angular JS 中使用 ng-include 的未定义函数
- 未捕获的引用错误:未定义函数
- j查询工具提示引发错误:未定义函数
- 未捕获的引用错误: 未定义单击世界 -- 未定义函数
- JS:引用错误:未定义函数
- 茉莉花未定义函数
- Javascript 错误:未捕获的引用错误:未定义 [函数]
- 未定义函数
- 尽管 js 文件引用在标头中,但未定义函数
- Javascript 未定义函数错误