2014-03-02 55 views
0

如果我從網頁做window.postMessage(),內容腳本會在這種情況下得到「消息」事件MessageEvent.source ===窗口。MessageEvent的不同來源

MessageEvent.source!==窗口的不同情況是什麼?

回答

1

當另一個窗口或框架調度消息,例如:

// Example: Another window: 
window.opener.postMessage(' ... ' , '*'); 
var win = window.open(); 
win.onload = function() { 
    win.postMessage(' ... ', '*'); 
}; 

// Example: Another frame 
window.top.postMessage(' ... ', '*'); 
window.frames[0].postMessage(' ... ', '*'); 
window.parent.postMessage(' ... ', '*'); // etc. 
+0

難道還有一種情況MessageEvent.source ===窗口,但MessageEvent.origin!== window.location.origin? –

+0

@KrishnaSrinivas不,那是不可能的。 –