gpt4 book ai didi

javascript - 实现两个站点之间的回调 - 两个站点之间的通信

转载 作者:搜寻专家 更新时间:2023-10-31 22:51:18 25 4
gpt4 key购买 nike

我在 http://domain1/app1/called.html 中有一个网络应用程序,我想将该应用程序嵌入到 http://domain2/app2/caller.html 中使用 iframe(或弹出窗口,是一样的)

用户应该能够与 called.html 交互,直到他们按下某个按钮,在这种情况下我需要告诉 caller.html 用户从 called.html 中选择了一个项目

我尝试用 javascript 实现它。

在 called.html 中,我将数据编码为 json,然后在 caller.html 中执行“called_callback”javascript 函数,将 json 作为参数传递。

如果 called.html 是用弹出窗口调用的,我发出 window.opener.called_callback( jsonData ),如果它是一个 iframe 我只发出 parent.called_callback( jsonData )

在同一个域中有 caller.html 和 called.html 一切正常,但是在不同的域中我得到以下错误:

permission denied (on IE6)

Unsafe JavaScript attempt to access frame with URL [..]/caller.html from frame with URL [...]called.html. Domains, protocols and ports must match. (on google chrome)

是否有可能克服这个限制?

你还能想到什么其他的实现方式???

我猜 caller.html 可以实现 Web 服务,我可以发送调用它的结果,但是页面 caller.html 必须进行轮询才能检测到任何变化...

那么一个应用程序如何与不同域中的另一个应用程序通信以发出事件信号???

最佳答案

您可以使用 JSONP将资源从一个域调用到另一个域。

您可以使用 window.name作为旧浏览器的跨域框架之间的 ~2Mb 文本传输。

或者对于现代浏览器,您可以使用 window.postMessage在 2 个框架之间传递字符串数据。

但是您需要领域的一些合作才能使这些技术发挥作用。

关于javascript - 实现两个站点之间的回调 - 两个站点之间的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4588290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com