我想在呈现iframe登录以请求扩展权限之前检查已登录用户的权限,但是iframe弹出窗口被浏览器阻止(ff,chrome tests).我想避免这种情况,我很确定它因为js函数的结果是'嵌套的' - 我的js聪明才有限,所以请原谅.
我猜测如果我可以保留原始函数中的所有内容而不传递结果,浏览器仍然会将登录iframe视为"用户启动"而不是阻止.
但我无法做到这一点 - 例如,为什么以下结果导致数据=未定义.
var data = FB.api(
{
method: 'fql.query',
query: 'SELECT create_event FROM permissions WHERE uid=' + response.session.uid
});
alert(data); // = undefined
Run Code Online (Sandbox Code Playgroud)
我当前的完整代码是:
<button id="myButton" >Test Publish Event</button>
<script>
$('#myButton').bind('click', function() {
FB.getLoginStatus(function(response) {
if (response.session) {
// logged in and connected user, someone you know
FB.api(
{
method: 'fql.query',
query: 'SELECT create_event FROM permissions WHERE uid=' + response.session.uid
},
function(response) {
if(response[0].create_event == 1) {
alert('permission granted');
} else {
alert('permission absent'); …Run Code Online (Sandbox Code Playgroud)