【发布时间】:2010-12-03 09:32:59
【问题描述】:
我正在实施一个“小部件”,它将包含在第 3 方网站的文章/故事页面中。这个小部件位于我们域中托管的
【问题讨论】:
标签: javascript url iframe get cross-domain
我正在实施一个“小部件”,它将包含在第 3 方网站的文章/故事页面中。这个小部件位于我们域中托管的
【问题讨论】:
标签: javascript url iframe get cross-domain
如果您担心 GET 请求的数据过多,请改用 POST 请求。您可以尝试类似这个问题的答案:"How do you post to an Iframe?"。然后您可以将数据放在隐藏的文本区域中,并在父页面上使用 JavaScript 提交表单。
【讨论】:
其实,你可以使用 name 属性,它有空间容纳相当多的数据。
在托管页面上,您首先创建 iframe,设置其 .name 属性以包含所需的数据,然后设置 .src 属性以加载包含的站点。这现在可以访问自己的名称,从而访问数据。
托管站点可能需要先将 iframe .src 设置为本地页面,这将捕获父文档数据,放入其 .name 属性并重定向到 inteded 站点。
【讨论】:
如果您可以控制这两个域,您可以尝试使用像 EasyXDM 这样的跨域脚本库,它包含跨浏览器的怪癖(包括 Sean 上面提到的 name 属性)并提供易于使用的 API用于在不同域之间使用该浏览器的最佳可用机制在客户端脚本中进行通信(例如,postMessage 如果可用,其他机制如果不可用)。
警告:您需要控制两个域才能使其正常工作(其中“控制”意味着您可以在两个域上放置静态文件)。但是您不需要任何服务器端代码更改。
另一个警告:这里存在安全隐患——确保您信任其他域的脚本!
【讨论】: