【问题标题】:Need a solution to capturing scroll event on Facebook iFramed app page需要一种在 Facebook iFramed 应用页面上捕获滚动事件的解决方案
【发布时间】:2012-06-04 05:31:15
【问题描述】:
我在 Facebook 中开发了一个应用程序页面,当然它位于 iFrame 中。我希望能够在页面滚动(主页/画布页面)时影响iFrame 内容中的元素。使用 jQuery,内容页面中的代码将是:
parent.$(window).scroll(function(){
do something
});
在iFrame 和父窗口在同一个域中的正常情况下,这可以工作,但由于不同域之间的安全限制,这是不允许的。我在网上广泛搜索并没有找到任何解决方案。是否有任何跨域修复,或任何编码方式以简单地允许捕获主页的滚动事件?
【问题讨论】:
标签:
php
jquery
facebook
cross-domain
facebook-iframe
【解决方案1】:
我与这个确切的问题进行了广泛的斗争。对于我的情况,当用户在页面之间切换时,我想删除滚动条并滚动到页面顶部。我在 /head 标记之前使用了这段代码。
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.Canvas.setSize({height: 1000});
FB.Canvas.scrollTo(0,0);
}
</script>
正如您所了解的,问题在于跨站点攻击。因此,例如,Firefox 不允许任何此类属性。这完全取决于您想要做什么。如果您回复一些有关您正在尝试执行的操作的更多信息,也许我可以提供更多建议。真正的底线是您将不得不创建某种黑客来完成您的任务,并且您的任务完全有可能根本无法完成。得知这一变化,我感到非常沮丧。我认为 Chrome 也已弃用此功能,并将很快将其全部停止。
布兰登