在我的网站上,我检查当前用户是否已经喜欢它的粉丝页面。如果不是,我会显示一个粉红色的箭头作为提示。Facebook的JS API在隐藏标签中的行为不同
这似乎在打开页面并等待所有内容加载时都能正常工作。但是,如果我只是输入地址,请按Enter并立即切换到另一个浏览器选项卡,稍后我可以回来查找粉红色箭头,尽管我已经喜欢粉丝页面。
用于检测的方法是以下的(称为上$(document).ready()
):
function showLikeHint() {
if (typeof FB === 'undefined') {
setTimeout(showLikeHint, 100);
return;
}
FB.api('/me/likes/339255156110755', {limit: 1}, function(r) {
try {
if (FB.getUserID() != "" && r.data.length == 1)
iLikeFanpage();
else
iDontLikeFanpage();
} catch (e) {
setTimeout(showLikeHint, 200);
}
});
}
是否有可能的是,API(即FB
对象)在隐藏的标签上运行时的行为不同?我不敢相信,但我不知道还有什么可能的原因...
这个问题发生在http://lolkitten.org/,并可以用最新的chrome复制。
你能围绕这个调用添加代码吗?你在window.fbAsyncInit中运行它吗?你是否等待window.fbAsyncInit完成? – Eldar 2013-03-10 14:16:40
完成。我不知道如何注册完成初始化事件......顺便说一句,init是在别处完成的,我只是试图避免重新初始化... – 2013-03-10 14:21:15