发出与postMessage从父级到子级iFrame的通信

时间:2016-12-06 08:42:53

标签: javascript iframe postmessage

我在从父窗口到子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

我做错了什么?

2 个答案:

答案 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 $()