2011-05-10 97 views
4

私は、以下の「構造」がFacebookアプリ開発しています:それはインラインフレーム内部のiframeですので、私は、ユーザーがのようなボタンをクリックしたときに、私のアプリ内で同様のボタンを使用していiframeから一番上のウィンドウをリロードする方法は?

Browser window (facebook.com/page/xxxx) 
    -- My app's iframe 
    -- Like button's iframe 

をユーザがすでにファンであるかどうかを確認するために、実際のロジックが意図したとおりに働いている、問題は、私のようにクリックしたときにということである

if (is_fan()) { 
    //show content 
} else { 
    //show like button plus other text 
} 

:ページは現在このようなsomethinに見えるので、私は、コンテンツを表示したいですボタンこれを行うと、「ファンのコンテンツ」を表示するためにページ全体をリロードする必要があります:

FB.Event.subscribe('edge.create', function(href, widget) { 
    top.location.reload(); 
}); 

ページはリロードされているようですが、すべて同じままですが、「好き」をクリックしてブラウザの更新ボタンをクリックするとすべてが表示されます。

誰でも私がこれを理解するのを助けることができますか?

ありがとうございます!

答えて

7

facebookの親ページはtopとなります。

使用top.location.href="";またはtop.location.reload();

+0

こんにちは、何らかの理由で、うまくいきません。質問を詳細で更新しています。 – javiervd

+1

使用する必要がありました: 'top.location.href =" http://www.myappsurl.com "; ' – javiervd

+1

Chromeで動作しません... – mathew

2

top.location.href="";またはtop.location.reload();どちらも私のために働きました。

私はあなたの代わりにhttp://www.w3schools.com/jsref/met_loc_reload.aspから抽出top.location.reload();

top.location.reload(true);を試してみてくださいtop.location.href = top.location.href;

0

を使用する必要がありました:

デフォルトでは、location.reloadを( )メソッドはキャッシュからリロードされますが、 によって強制的にloadforceGetパラメータをtrueに設定してサーバからページを取得します:location.reload(true)。

2

を使用することができリロードするにはtop.location.href="http://www.facebook.com/appurl";

関連する問題