我正在开发一个具有以下“结构”的Facebook应用程序:
Browser window (facebook.com/page/xxxx)
-- My app's iframe
-- Like button's iframe
我在我的应用程序中使用了Like按钮,因此在iframe中使用iframe,当用户点击like按钮时我想显示内容,以便页面当前看起来像这样:
if ( is_fan() ) {
//show content
} else {
//show like button plus other text
}
检查用户是否已经是粉丝的实际逻辑正在按预期工作,问题是当我点击“赞”按钮时,我需要重新加载整个页面才能显示“粉丝内容”,如果我这样做的话这样:
FB.Event.subscribe('edge.create', function(href, widget) {
top.location.reload();
});
页面似乎重新加载,但一切都保持不变,但如果我点击“赞”并点击浏览器中的刷新按钮,一切都会显示正常。
任何人都可以帮我解决这个问题吗?
提前致谢!
答案 0 :(得分:7)
我们将facebook父页面引用为top
。
使用top.location.href="";
或top.location.reload();
答案 1 :(得分:2)
top.location.href="";
或top.location.reload();
都不适合我。
我必须使用top.location.href="http://www.facebook.com/appurl";
答案 2 :(得分:2)
尝试使用top.location.reload(true);
代替top.location.reload();
摘自http://www.w3schools.com/jsref/met_loc_reload.asp:
默认情况下,location.reload()方法从缓存重新加载,但是 您可以通过设置强制重新加载从服务器获取页面 forceGet参数为true:location.reload(true)。
答案 3 :(得分:0)
要重新加载,您可以使用top.location.href = top.location.href;