控制Facebook iFrame应用程序的父框架的滚动位置

时间:2010-02-12 17:21:23

标签: javascript facebook

我已经快速启动并运行了一个Facebook iFrame应用程序,但我意识到由于跨域问题,我无法处理父框架的滚动位置。如果用户在页面上点击太远,我就无法将它们重新弹回到顶部。

有没有人对任何Facebook JS库或其他JavaScript技巧都有好运呢?

谢谢!

3 个答案:

答案 0 :(得分:31)

Facebook于2011年4月将FB.Canvas.scrollTo方法添加到新的JavaScript SDK中:

http://developers.facebook.com/docs/reference/javascript/FB.Canvas.scrollTo/

答案 1 :(得分:2)

这对我来说效果更好(假设使用Jquery)

$(document).ready(function($) {
        scrollTo(0,0);
    });

    function scrollTo(x,y){
        $("body").append('<iframe id="scrollTop" style="border:none;width:1px;height:1px;position:absolute;top:-10000px;left:-100px;" src="http://static.ak.facebook.com/xd_receiver_v0.4.php?r=1#%7B%22id%22%3A0%2C%22sc%22%3Anull%2C%22sf%22%3A%22%22%2C%22sr%22%3A2%2C%22h%22%3A%22iframeOuterServer%22%2C%22sid%22%3A%220.957%22%2C%22t%22%3A0%7D%5B0%2C%22iframeInnerClient%22%2C%22scrollTo%22%2C%7B%22x%22%3A'+x+'%2C%22y%22%3A'+y+'%7D%2Cfalse%5D" onload="$(\'#scrollTop\').remove();"></iframe>');
    }

答案 2 :(得分:1)

旧库有一些功能可行,但截至6月中旬尚未移植到新的Javascript SDK库。

添加10/12:尝试使用location.href(“#top”)根据需要定位页面。有点笨重,但总比没有好。您可以将它放在可以放置ID或引用的任何位置。