我有一個帶有邀請按鈕(又名FB.ui - > apprequests)的頁面選項卡應用程序,它從example.com/pagetab
運行時正常工作(即,它彈出一個FB.ui朋友選擇器窗口等)但是當我將應用程序的頁面標籤指向那裏並從Facebook內部加載它作爲iframe時,沒有任何反應。起初,我認爲這是一個問題,因爲jquery不知道哪個文檔已準備就緒,但是我切換到使用onclick
,甚至從Chrome控制檯輸入命令(當然,在iframe的範圍內),但沒有鏈接,發生......這是一個錯誤還是我錯過了什麼?FB.ui apprequest不工作在頁面選項卡
最少的代碼:
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怪癖,我不趕上?