'postMessage' を xul-background-task に送信できなかった html-popup (ローカル) があっただけです。奇妙なことに、独自の MessageEvent を開始することで (postMessage が行うのとまったく同じこと)、(時代遅れだと思います) フォールバックを使用して、機能するようになったと思います。
コンテンツ内の私のスクリプト:
var Communicator =
{
postMessage: function(data)
{
// We need some element to attach the event to, since "window" wont work
// let's just use a fallback JSON-stringified textnode
var request = document.createTextNode(JSON.stringify(data));
// and as always attach it to the current contentwindow
document.head.appendChild(request);
// Now let's make a MessageEvent of our own, just like window.postMessage would do
var event = document.createEvent("MessageEvent");
event.initMessageEvent ("own_message", true, false, data, window.location, 0, window, null);
// you might want to change "own_message" back to "message" or whatever you like
//and there we go
request.dispatchEvent(event);
}
}
window.postMessage(data) の代わりに Communicator.postMessage(data) を使用するようになりました。今、私のオーバーレイには、私たちの古き良きものしかありません
addEventListener('own_message', someMessageFunc, false, true);
//or maybe even "message" just like originally
うまくいけば、これもうまくいくでしょう(iframeではチェックしていません...)