1

我在 Facebook 中开发了一个应用程序页面,当然它位于iFrame. 我希望能够iFrame在页面滚动(主页/画布页面)时影响内容中的元素。使用 jQuery,内容页面中的代码将是:

parent.$(window).scroll(function(){
    do something
});

在正常情况下iFrame,父窗口和父窗口在同一个域中,这是可行的,但由于不同域之间的安全限制,这是不允许的。我在网上广泛搜索并没有找到任何解决方案。是否有任何跨域修复,或任何编码方式以简单地允许捕获主页的滚动事件?

4

1 回答 1

0

我与这个确切的问题进行了广泛的斗争。对于我的情况,当用户在页面之间切换时,我想删除滚动条并滚动到页面顶部。我在 /head 标签之前使用了这段代码。

<script type="text/javascript">
window.fbAsyncInit = function() {
  FB.Canvas.setSize({height: 1000});
  FB.Canvas.scrollTo(0,0);
}
</script>

正如您所了解的,问题是跨站点攻击。因此,例如,Firefox 不允许任何此类属性。这完全取决于你想做什么。如果您回复一些有关您尝试执行的操作的更多信息,也许我可以提供更多建议。真正的底线是您将不得不创建某种黑客来完成您的任务,并且您的任务完全有可能根本无法完成。得知这一变化,我感到非常沮丧。我认为 Chrome 也已弃用此功能,并将很快将其全部停止。

布兰登

于 2012-05-30T00:45:00.737 回答