我有一个与Facebook整合的网站。主页有一些受欢迎的Like按钮和一个不是的登录按钮。我想在Like按钮上添加一个事件,这将使它们成为事实上的登录按钮 - 也就是说,除了Facebook正在做的所有事情之外,我想借此机会为我的应用程序请求扩展权限。
它不起作用,这就是我所知道的原因:
此链导致在edge.create上触发的处理程序无法请求扩展权限。我可以想到两类解决方案:
我在研究中找到的任何东西都没有给我一个简单的方法来做其中任何一个。在解决方案1中,FBJS提供了一个addEventListener方法,但据我所知,FBJS与我的情况无关(在我拥有的网站上集成),所以我不能用它来捕获点击。在解决方案2中,Facebook自己的FB.login文档说明如下:
You should only call this on a user event as it opens a popup. Most browsers block popups, unless they were initiated from a user event, such as a click on a button or a link.
(资料来源:https://developers.facebook.com/docs/reference/javascript/FB.login/)
所以我处于死胡同,但这似乎是一个非常人为的问题 - Facebook是否希望我能够在点击“赞”按钮时请求权限?如果是这样,我错过了什么?如果没有,为什么他们在UI层实现这个限制?
答案 0 :(得分:2)
Facebook Like按钮存在于<iframe>
内。因此,您无法捕获或截取按钮的点击事件,甚至无法在<iframe>
本身上点击事件。
也许您可以启动页面显示您自己的按钮看起来像Facebook Like按钮,然后您可以正常处理这些按钮。您可以连接它们,以便在第一次单击时它们请求权限,然后用实际的Like按钮替换所有自定义的Like按钮。