JS跨域子到父窗口通信

时间:2012-08-28 09:48:49

标签: javascript facebook cross-domain

我正在为我的网站创建类似于Facebook Connect的API。我有一个工作弹出窗口,如果它与父窗口位于同一个域中,则可以正常工作。

但是,用户将通过在我的服务器中包含一个JS文件来合并我的API。当他们呼叫登录窗口时,它将从他们的站点打开并允许用户登录我的域。但是,当用户实际登录时,我需要向父窗口发送事件通知!正如大多数人可能知道的那样,这不可能发生,因为这些窗口是跨域的。

我想知道其他现有解决方案可用于此任务。我知道如果我将document.domain设置为在两个站点上都相同(即,将API客户端的document.domain更改为我的域 - 如果可能的话?)那么窗口可以进行通信,但是我不确定那是否安全。如果域可以进行通信,那么可能API客户端可能会等待用户打开登录窗口,然后在用户输入时读取用户的登录凭据。这是如何工作的?或者他们只会朝一个方向沟通?

我希望得到一个相当简单的解决方案..但是如果需要,我愿意尝试更复杂的东西。我知道Facebook正在这样做,所以我知道它是可能的。先谢谢你们。

1 个答案:

答案 0 :(得分:3)

快速而肮脏的黑客是send notifications via the window.name property