html - 如何使 postMessage 适用于所有子域

标签 html postmessage

window.postMessage 中,第二个属性指定了我的消息可以发送到的域。有没有办法指定它适用于所有子域。

尝试过的事情:

iframe.contentWindow.postMessage('The message to send.','http://*.wordpress.com');
iframe.contentWindow.postMessage('The message to send.','http://wordpress.com');

最佳答案

不知道所有域名是可能的。只需获取一个引荐来源网址,您实际上就可以从中获得来源:

var parentOrigin = document.referrer.match(/^.+:\/\/[^\/]+/)[0];

现在,唯一的事情就是检查 URL 是否符合条件(以 wordpress.com 结尾),如果是,则允许消息发送到该特定域。

仅在用户在 iframe 内导航到其他地方之前有效:引荐来源网址已更改。但是,引荐来源网址可以保存在 iframe 的 localStorage 中,这样您就有了一个可能域的列表,并且可以将消息发送到 Ivan Zuzak 提议的列表中的每个域。

关于html - 如何使 postMessage 适用于所有子域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14443294/

相关文章:

html - 防止图标的 SVG 背景出血?

javascript - postMessage 在 IE11 上仍然损坏?

c# - 如何使用模态窗口将 WM_INPUTLANGCHANGEREQUEST 发送到应用程序?

javascript - 同一组件的两个窗口之间的 Angular 通信

c++ - 不同线程中的postmessage和message loop

javascript - jquery .each(第二行)添加背景色

jquery - 如何让 Photoswipe 从缩略图列表中识别整个图库

html - 输入默认图像以防 html <img> 的 src 属性无效?

javascript - fabricjs - 在视口(viewport)中缩放 Canvas (可能吗?)

javascript - 使用 jquery 设置 fancybox 高度