【发布时间】:2012-06-03 12:04:46
【问题描述】:
我有一个带有邀请按钮的页面标签应用程序(又名 FB.ui -> apprequests),当它从 example.com/pagetab 运行时工作正常(即,它会弹出一个 FB.ui 朋友选择器窗口等)但是当我将我的应用程序的页面选项卡指向那里并从 Facebook 内将其作为 iframe 加载时,没有任何反应。起初我认为是按钮没有链接的问题,因为 jquery 不知道哪个文档已准备好,但我切换到使用 onclick 甚至从 Chrome 控制台输入命令(当然是在 iframe 的范围内)但什么也没发生...这是一个错误还是我错过了什么?
最少的代码:
window.fbAsyncInit = function() {
FB.init({
appId : '123456789', // App ID
channelUrl : '//fbjscache.php', // Channel File
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
}); };
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
function sendInvite() {
console.log("Inviting...");
FB.ui({method: 'apprequests',
title: 'Check out this great app!',
message: 'Join the fun!',
}, inviteCallback);
}
然后在页面上
<a href="javascript:void(null)" class="invite" onclick="sendInvite()"><div class="facebookButton">Invite</div></a>
当页面直接加载时,此代码完全符合预期(弹出可爱的朋友选择器对话框),而从 iframe 加载时则不执行任何操作。这是一个错误还是有一些我没有注意到的隐藏设置/JS 怪癖?
【问题讨论】:
标签: facebook facebook-iframe facebook-javascript-sdk