Facebook的“赞”按钮如何具有跨域访问权限,可以将HTML添加到父窗口
How does Facebook's Like Button have cross-domain access to add HTML to the parent window?
免责声明:我将尽力解释我所追求的内容,但我对跨域策略的了解非常有限。我已经搜索了Stack,但如果有一个答案我错过了,请告诉我。
我们在网站上实施了标准的Facebook喜欢/发送按钮。Like
和Send
按钮位于指向 facebook.com 的 iFrame 中。
当您单击Send
按钮时,HTML将作为Facebook iFrame的同级(即我们的DOM)附加
我想知道的是FB如何在不违反跨域政策的情况下将HTML添加到我们网站上的div中。
这是我的小提琴。若要查看发生的情况,请在单击"Send
"的同时检查 DOM。
感谢@CBroe指出我的答案:
通过 Mozilla
window.postMessage
是一种安全启用跨源通信的方法。通常,仅当且仅当执行它们的页面位于具有相同协议(通常均为http),端口号(80是http的默认值)和主机(两个页面将modulo document.domain设置为相同值)的位置时,才允许不同页面上的脚本相互访问。window.postMessage 提供了一种受控机制,以正确使用时安全的方式规避此限制。
因为你用javascript添加发送按钮,而不是iframe。Iframe 在您的页面加载/刚加载后生成。
由于这个原因,脚本能够访问你和 Iframe 的内容和 DOM 元素并对其进行编辑。正如您所知道和提到的,无论如何,iframe 都无法访问它的父级。
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 如何设置html元素填充的动画
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何编写HTML输入的JS内联
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 使用javascript将动态表从一个html页面打印到另一个html页
- 通过javascript重定向html传递php变量
- 如何使Javascript动态html表及其上的事件
- 根据HTML文件名授予web服务器写入权限
- 如何在没有代码隐藏访问权限的情况下将自定义 HTML 属性添加到 ASP.NET 标签
- Facebook的“赞”按钮如何具有跨域访问权限,可以将HTML添加到父窗口
- 如何防止在分配权限后刷新html列表菜单项
- Lightswitch HTML客户端-基于权限禁用/隐藏按钮
- HTML 5浏览器摄像头权限
- Chrome扩展:不可能在DOM中插入HTML,权限问题
- HTML文件上传权限错误
- 使用指令将具有范围访问权限的功能附加到html元素
- 在没有html访问权限时显示/隐藏在javascript中
- 支付对 HTML 文件的访问权限