我有一个带有邀请按钮的页面选项卡应用程序(又名 FB.ui -> apprequests),当它运行时example.com/pagetab
工作正常(即,它会弹出一个 FB.ui 朋友选择器窗口等)但是当我指向我的应用程序的页面选项卡时到那里并将其作为 iframe 从 Facebook 中加载,没有任何反应。起初我认为这是按钮没有链接的问题,因为 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 怪癖?