私のウェブサイトで、現在のユーザーがすでにそのファンページを気に入っているかどうかを確認します。そうでない場合は、ヒントとしてピンクの矢印を表示します。
これは、ページを開いてすべてが読み込まれるのを待っているときに正しく機能するようです。ただし、アドレスを入力して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で再現できます。