【问题标题】:Controlling scroll position for Facebook iFrame application's parent frame控制 Facebook iFrame 应用程序父框架的滚动位置
【发布时间】:2011-04-11 14:10:00
【问题描述】:

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

有没有人幸运地使用任何 Facebook JS 库或其他 JavaScript 技巧来实现这一目标?

谢谢!

【问题讨论】:

    标签: javascript facebook


    【解决方案1】:

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

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

    【讨论】:

    • 真的,终于有办法了!非常感谢您的分享——希望这能帮助其他试图解决这个问题的人。
    【解决方案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>');
        }
    

    【讨论】:

    • 非常感谢。它在 Canvas App iframe 中运行良好,但在 Facebook 的新 iframe in Page 选项卡中不起作用。是否有类似的解决方案适用于页面标签中的 iframe?
    【解决方案3】:

    旧库有一些功能可以使用,但截至 6 月中旬,它们还没有移植到新的 Javascript SDK 库中。

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

    【讨论】:

    • 确实,旧库有一些功能可以完成其中的一些操作(但不幸的是,我在这里没有提到),但似乎它们在新库中的功能并不完全然而——我上次尝试时引起了一些非常奇怪的问题。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-21
    • 1970-01-01
    • 2012-09-07
    • 2011-04-27
    • 2011-05-10
    相关资源
    最近更新 更多