使用IFrame和Javascript滚动父页面

时间:2014-09-26 16:56:59

标签: javascript jquery html css iframe

我正在寻找一些关于什么应该是基本脚本的帮助(我认为),但我不能自己解决这个问题。

我有一个带有iFrame的页面,显示一个我只能访问标题的页面。 我想这样做,以便当有人点击iFrame窗口中的任何链接(标记)时,它会将我的父页面滚动到顶部(或特定位置)。 这可能吗?

编辑:此外,如果它很重要,我已经在使用David Bradshaw的iFrame缩放器脚本动态调整帧的大小,它使用postmessage来传递frame-> page。 https://github.com/davidjbradshaw/iframe-resizer

Edit2:父窗口和iframe窗口是跨域的

1 个答案:

答案 0 :(得分:1)

请参阅Trigger events in iframe's parent window

将一些JS添加到您的iframe页面:

$(document).ready(function(){
    $('a').click(function(){
        window.parent.$(window.parent.document).trigger('scroll');
    });
});

然后在父页面上:

$(document).bind('complete', function(){
    //Add scroll code.
});

您可以使用帖子消息来执行类似的操作,但是如果您控制两个页面并且它们位于同一个域中,则应该可以使用。如果它们位于不同的域(您没有指定),那么您将使用postMessage,我相信它不是完全跨浏览器兼容的,因此无法在所有设置上工作,而且确实没有&# 39; ta fallback。

如果您想使用postMessage并且使用的是插件,请执行类似

的操作
window.addEventListener("message",function(event){
    if(event.origin == 'http://yourdomain.com'){
        if(event.data == 'messageString'){
            //Add scroll code
        }
    }
});