javascript - FB.api 响应回调异步弹出窗口被阻止

标签 javascript jquery facebook facebook-graph-api

FB.api('/me', function(response) {
// this is async
//other logic goes here
window.open(mylink + response.name);
}

异步问题使我无法进行过程编程风格,所以我将代码放在 block 内,它被弹出窗口拦截器阻止了。如何解决这个问题?我用谷歌搜索,人们说它可以使 async false。

最佳答案

您无法在异步回调函数中打开弹出窗口,您始终必须在用户交互时直接打开它。这是一项重要的浏览器功能,可以保护用户免受不需要的弹出窗口的影响。

您绝对必须在用户点击之前调用 FB.api。初始化 JavaScript SDK 后立即调用 FB.api('/me') 并将其存储在变量中以供以后使用应该没有问题。

关于javascript - FB.api 响应回调异步弹出窗口被阻止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25636316/

相关文章:

javascript - AngularJS 如何从父组件触发子组件中的函数?

javascript - iframe url 更改时发出警报

javascript - jquery 循环中的命名变量

javascript - 使用自定义组件时如何在 React-Select 中设置所选项目的样式?

javascript - 禁用扩展程序时 Chrome 扩展程序内容脚本出现问题

javascript - 右对齐 HTML 标签

php - 从模型函数中排序数组列表

asp.net - 如何使用 facebook 注册和登录或连接到我的 asp.net 站点?

jquery - Facebook Oauth 使用 Jquery Mobile 登录 #_=_

javascript - JSON 编码 MySQL 数组并在 Google map 上显示