javascript postmessage不起作用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript postmessage不起作用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2080字,纯文字阅读大概需要3分钟。
内容图文
![javascript postmessage不起作用](/upload/InfoBanner/zyjiaocheng/685/dd018773950445b38f7df38e187fb700.jpg)
我有2个网站,我想在它们之间使用javascriptpostMessage.
在我的主站点上,我在emty html文件中编写以下代码:
<html>
<script>
window.addEventListener("message",listener_,false);
function listener_(event) {
console.log('ok!');
<html>
<script>
window.addEventListener("message",listener_,false);
function listener_(event) {
console.log('ok!');
//console.log(event);
//console.log(event.data);
}
</script>
</html>
并在我要从其调用postmessage的其他站点中,编写以下代码:
<script type="text/javascript">
window.onload = function() {
testfunction();
};
function testfunction(){
var childWin = window.open("http://my-main-site.com/indexjava2.html","child");
childWin = postMessage('message','*');
console.log(TipaltiIframeInfo.height);
}
</script>
但经过大量尝试后仍无法正常工作.我的意思是
console.log(‘确定!’);或console.log(event); console.log(event.data);
不会在主站点的控制台上触发,
该怎么办?
谢谢
解决方法:
除了您拥有< script>和< html>标签位于接收页面的代码中间,并且您两次定义并添加了事件监听器,因此您也无法正确使用postMessage.代替这个:
childWin = postMessage('message', '*');
…应该是这样的:
childWin.postMessage('message', '*');
如果您想了解有关postMessage的更多信息,请访问read this.
另一个问题是,除非在发送邮件之前打开该页面,否则新打开的页面将不会接收到该消息.您正在尝试在打开新页面后立即发送消息,并且在添加事件侦听器之前,消息已到达新页面.您可以使用setTimeout来解决此问题,但是如果新页面的加载时间较长,那么这可能也不可靠.
// This is what NOT to do:
setTimeout(function() {
childWin.postMessage('message', '*');
}, 1000);
相反,更好的方法是让子页面告诉父页面何时加载.这样父母和孩子就可以可靠地交流.
这是完整的更正代码,首先发送页面:
<script>
var childWin;
window.addEventListener('message', messageListener, false);
function messageListener(event) {
if(event.data == 'ready') {
childWin.postMessage('hello second page', '*');
}
}
window.onload = function() {
childWin = window.open('http://my-main-site.com/indexjava2.htm', 'child');
};
</script>
和接收页面:
<script>
window.addEventListener('message', messageListener, false);
function messageListener(event) {
console.log(event.data);
}
window.opener.postMessage('ready','*');
</script>
内容总结
以上是互联网集市为您收集整理的javascript postmessage不起作用全部内容,希望文章能够帮你解决javascript postmessage不起作用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。