【问题标题】:Using IFrame and Javascript to scroll parent page使用 IFrame 和 Javascript 滚动父页面
【发布时间】:2014-11-21 18:18:24
【问题描述】:

我正在寻找一些关于什么应该是基本脚本的帮助(我认为),但我自己不太明白..

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

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

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

【问题讨论】:

标签: javascript jquery html css iframe


【解决方案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.
});

你可以使用 post message 来做类似的事情,但如果你控制两个页面并且它们在同一个域中,这应该可以工作。如果它们位于不同的域(您未指定),则您将无法使用 postMessage,我认为它并不完全兼容跨浏览器,因此不适用于所有设置,并且确实没有回退。

如果您想使用 postMessage 并且正在使用插件,只需执行类似的操作

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-09
  • 1970-01-01
  • 1970-01-01
  • 2011-04-05
  • 1970-01-01
相关资源
最近更新 更多