我有一些嵌入代码,用户可以放在他们的网站上。它在页面上创建两个子 iframe。我希望这些孩子能够交流。
我正在使用 javascript 的window.postMessage
https://developer.mozilla.org/en-US/docs/DOM/window.postMessage
由于两个 iframe 子级无法直接通信,因此我将父级用作消息的中继。但是,父级可以位于不同的域中,因为它是可嵌入的代码。
当所有三个(父母和两个孩子)都在同一个域上时,这很容易,我可以通过安全检查来检查这e.origin
是我自己的网站
# coffeescript
# host = "http://www.mysite.com"
host = "http://localhost"
receive_message = (e) ->
console.log("received message from " + e.origin + ": " + e.data)
return if e.origin != host
if e.data == "show"
...
else if e.data == "hide"
...
window.addEventListener("message", receive_message, false)
当父母可以在任何域上时,检查来源的优雅方法是什么?
什么是允许调试源可以是本地主机的脚本的好方法?
如果传递非破坏性/更改消息,仅检查数据参数是否足够?
谢谢!