似乎window.postMessage的目的是允许在不同域中托管的Windows/框架之间进行安全通信,但实际上似乎不允许在Chrome中进行通信。
这是场景:
src
这是一个适用于Chrome 5.0.375.125的示例。
网页B(iframe内容):
<html> <head></head> <body> <script> top.postMessage('hello', 'A'); </script> </body> </html>
注意使用top.postMessage或parent.postMessage不window.postMessage这里
top.postMessage
parent.postMessage
window.postMessage
页面A:
<html> <head></head> <body> <iframe src="B"></iframe> <script> window.addEventListener( "message", function (e) { if(e.origin !== 'B'){ return; } alert(e.data); }, false); </script> </body> </html>
A和B一定是这样的 http://domain.com
http://domain.com