use*_*126 18 html5 postmessage
在window.postMessage第二个属性中指定可以将消息发送到的域.有没有办法指定它适用于所有子域.
事情尝试:
iframe.contentWindow.postMessage('The message to send.','http://*.wordpress.com');
iframe.contentWindow.postMessage('The message to send.','http://wordpress.com');
Run Code Online (Sandbox Code Playgroud)
不,不可能.
您可以自助的唯一情况是,如果您知道目标iframe来自已知的,有限的一组起源(例如"http://a.wordpress.com","http://b.wordpress.com "和"http://c.wordpress.com").在这种情况下,只需为每个源创建一个postMessage请求,因为只有其中一个会成功,而其他的将失败.
可能在不知道所有域名的情况下.只需获取引荐来源网址,您实际上就可以从中得到原因:
var parentOrigin = document.referrer.match(/^.+:\/\/[^\/]+/)[0];
Run Code Online (Sandbox Code Playgroud)
现在,唯一的办法是检查URL是否与条件匹配(以...结尾wordpress.com),如果是,则允许将消息发送到此特定域.
仅在用户在其他地方的iframe内导航之前有效:引用者已更改.但是,引荐来源可以保存在iframe中,localStorage因此您有一个可能的域列表,并且可以将消息发送到Ivan Zuzak提议的列表中的每个域