【发布时间】:2010-10-13 12:33:37
【问题描述】:
我有一个应用程序,我将 iframe 用于 facebook likebox。
我想在主页中订阅用户点击 iframe 中的点赞按钮时的事件。
基本上只要用户喜欢我希望他被重定向到我将指定的页面的页面。
我可以使用什么 javascript 命令?
谢谢
【问题讨论】:
标签: javascript facebook iframe
我有一个应用程序,我将 iframe 用于 facebook likebox。
我想在主页中订阅用户点击 iframe 中的点赞按钮时的事件。
基本上只要用户喜欢我希望他被重定向到我将指定的页面的页面。
我可以使用什么 javascript 命令?
谢谢
【问题讨论】:
标签: javascript facebook iframe
除非您的父文档与 Facebook Like 框架位于同一个域中,否则出于安全原因,您根本无法在其中编写脚本。这是同源策略。它不仅可以防止您检测到点击,还可以防止冒充用户,迫使他们在未经他们同意的情况下执行操作(例如喜欢您)。
您可以尝试在框架顶部放置一个元素来检测点击,但通过拦截点击也可以阻止它通过框架。您能做的最好的事情是检测鼠标悬停在 Like 按钮区域上并移除覆盖元素,允许用户单击。这并不可靠,因为它会捕获所有鼠标悬停。
【讨论】:
file:/// URL 执行不安全的跨域 XMLHttpRequest。您可以使用跨域 XHR 在您自己的页面上重新创建按钮,并通过发布 Facebook 自己的脚本会执行的任何交互来伪造与它的交互。 (这就是它不安全的原因。)然而,要让它工作需要大量的脚本,这是一个痛苦的脚本,默认情况下在我的电脑中禁用脚本(用户必须故意从信息栏中启用它)。用处不大。
window 对象是一个极其有限的版本,它不允许您访问document。
你可以把它连接到按钮上
onclick = "window.location('www.google.com')"
显然将 URL 替换为您的 URL。但您可能想检查这是否合法。
【讨论】: