在 Facebook 选项卡中,Iframe 锚点无法正常工作

4
在整天尝试让Facebook选项卡中的锚点起作用后,我放弃了并请求帮助:)
在下面这个非常简单的选项卡http://www.facebook.com/pages/Testing-pages/196886257049573?sk=app_186989884709513中,页面末尾有一个锚点,应该将用户带回页面顶部。
如果我保留iframe滚动条,则一切正常,但是如果我使用以下js去除滚动条:
window.fbAsyncInit = function() {
FB.init({
    appId: 'your_app_id',
    status: true,
    cookie: true,
    xfbml: true
});
FB.Canvas.setSize();
};

链接停止工作,没有任何反应。 在IE9、FF7中出现以下问题,但在Safari和Chrome中运行良好。
我很迷茫,真的不知道该怎么办。
注意1:尝试使用以下插件http://flesler.blogspot.com/2007/10/jqueryscrollto.html 注意2:尝试通过JS重新加载页面,但它会在相同的位置重新加载。

你有尝试过在链接中使用<a target='_top' href='http://www.facebook.com/pages/Testing-pages/196886257049573?sk=app_186989884709513'>或者通过top.location.href=http://www.facebook.com/pages/Testing-pages/196886257049573?sk=app_186989884709513重新加载吗? - DannyKK
1
或者您可以使用此链接:http://developers.facebook.com/docs/reference/javascript/FB.Canvas.scrollTo/ - DannyKK
target='_top' 在新页面中打开,top.location 给我一个权限错误(跨站点安全性),如果我使用 #name_of_anchor 而不仅仅是 #,它在 IE 中可以工作,所以唯一剩下的就是 Firefox。 - Immutable Brick
4
如果您已经加载了JS SDK,我认为FB.Canvas.scrollTo是您最好的选择。 - DannyKK
DannyKK,你的答案是正确的,解决了我的问题,非常感谢,现在我只需要弄清楚如何将您的答案设置为正确的 :) - Immutable Brick
非常有帮助的问题 +1 弹跳 - Arash
1个回答

6
所以我知道现在有点晚了,但是使用jQuery,你可以绑定任何以#开头的<a href=""></a>,找到该元素的顶部位置,然后使用FB.Canvas.scrollTo(0, position)滚动到该元素。 http://jsfiddle.net/sluzorz/efyVf/ 编辑:
使用jQuery.offset()代替。

早就已经解决了,但那是正确的答案 :) - Immutable Brick
哈哈,是的。我正在尝试找到解决方案,不妨发布一下我想出来的东西 :)。 - Steven Lu
1
顺便提一下,你应该使用.offset来包括填充和边距。 - Steven Lu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接