我在从父窗口到子iFrame进行通信时遇到问题。但另一方面,一切都很完美。 以下是我如何获取chil iFrame对象以激活 postMessage 函数:
"fnRowCallback": function(column, aData, iDisplayIndex, iDisplayIndexFull) {
// Bold the grade for all 'A' grade browsers
if (!aData[4])
{
$(column).addClass( 'alert-danger' ).css('background-color', '#f2dede');
}
},
当我在控制台中打印它时,我得到以下内容:
var iFrame = document.getElementById('Frame').contentWindow;
当我按如下方式进入postMessage函数时:
Window {parent: Window, opener: null, top: Window, length: 0, frames: Window…}
加载页面时显示错误: iFrame.postMessage不是函数 。 当我在控制台中执行postMessage时,我得到 undefined
我做错了什么?
答案 0 :(得分:7)
试试这个
var iFrame = document.getElementById('Frame');
iFrame.contentWindow.postMessage("message", "http://contoso.com");
我也有这个问题。我从这个网站找到了解决方案https://www.viget.com/articles/using-javascript-postmessage-to-talk-to-iframes
答案 1 :(得分:2)
下面的代码也有效。
$('#id')[0].contentWindow.postMessage("hello world",targetOrigin);
jQuery选择器和document.getElementById之间存在差异。
Document.getElementByID返回HTML DOM对象 jQuery选择器返回jQuery对象。
有关详细信息,请参阅以下链接。 document.getElementById vs jQuery $()