我陷入了愚蠢的问题。我正在尝试开发一个Firefox扩展,其中有一个弹出式面板,在该面板中有一个tasks.html文件的iframe。使用window.postMessage发送消息给iframe
我想单击按钮在我的网页(说网页与插件的交互),但它不工作,postMessage到该iframe。
以下是面板外观的图像。
这是函数,男使用将数据发送到的IFRAME。当网页中的按钮被点击时,帖子功能被调用。
function Post() {
var iframe = window.document.getElementById("iframe").contentWindow;
postMessageToWindow(iframe, "Hello");
}
function postMessageToWindow(win, message) {
try {
win.postMessage(message, '*');
return true;
} catch(e) {
return false;
}
}
,并在此html页面,我有
window.addEventListener('message', function(e) {
var str_data = e.data;
document.getElementById('test').innerHTML = str_data;
});
,但没有在测试DIV所示得到。
请帮帮我吧。谢谢。
面板在同一个域的iframe和HTML文档? –
@PhilipBevan没有域名。它在Firefox Addon中。在'sample.xul'中''iframe id =“iframe”src =“chrome://addon/content/sample.html”width =“400px”and height =“400px”>'尽管sample.xul和sample.html位于同一个文件夹中。 – prateekkathal
它不是一个域问题。函数Post(){...}和函数postMessageToWindow代码在哪里?你正在从iframe onload的头部运行window.addEventListener吗? – Noitidart