0
我想知道如何在JS實現通信的適當的方式(使用的postMessage優選)窗口之間在下列情況下:PostMessage的兩個子與相同來源的窗口
P A - [R簡Ť | | CHILD1 CHILD2
父母在origin1和兩個孩子都在origin2(事實上在兩個不同的模式相同的網站)。
如何發送消息給確切的孩子,避免第二個孩子作出反應。
在此先感謝
我想知道如何在JS實現通信的適當的方式(使用的postMessage優選)窗口之間在下列情況下:PostMessage的兩個子與相同來源的窗口
P A - [R簡Ť | | CHILD1 CHILD2
父母在origin1和兩個孩子都在origin2(事實上在兩個不同的模式相同的網站)。
如何發送消息給確切的孩子,避免第二個孩子作出反應。
在此先感謝
假設你打開兩個彈出窗口:
/*
* In window A's scripts, with A being on <http://example.com:8080>:
*/
var popup1 = window.open(...popup details...),
popup2 = window.open(...popup details...);
popup1.postMessage('some message to popup 1', 'http://example.org');
popup2.postMessage('some message to popup 2', 'http://example.org');
裏面的彈出窗口,你需要添加一個監聽器代碼:
function receiveMessage(event)
{
// Do we trust the sender of this message? (might be
// different from what we originally opened, for example).
if (event.origin !== "http://example.org")
return;
// event.source is popup
// event.data is "some message to popup 1"
}
window.addEventListener("message", receiveMessage, false);
這裏美中不足的是,這兩個彈出窗口都需要與父窗口位於同一個域中。
嗨,其實我使用jQuery窗口擴展彈出窗口,但機制應該是相同的。我試圖按照你的建議發佈消息,但總是第一個窗口捕獲消息。所以在做時: popup2.postMessage - popup1獲取並處理消息 – Mick 2015-01-22 10:52:33