javascript – 滚动父窗口以在iframe中锚定

父级和iframe位于同一个域中. iframe具有动态高度且没有自己的滚动条 – 滚动条位于父窗口中.

尽管搜索很多,我还是找不到在加载时将父窗口滚动到iframe中的锚点的方法.即iframe网址是abc.com/iframe.html#link,但加载时只有iframe的顶部可见 – 父框架不会滚动到#link.有没有人知道这可以用javascript(在父或iframe或两者)或其他方式完成?

谢谢

最佳答案 这可以通过javascript来完成.假设你单击一个链接,而不是锚链接它,试试这个:

document.getElementById('id_of_link').scrollIntoView(true);

编辑:window.parent.scroll(x,y)怎么样,其中x,y是通过此方法检索的元素的位置:

function getOffset( el ) {
    var _x = 0;
    var _y = 0;
    while( el && !isNaN( el.offsetLeft ) && !isNaN( el.offsetTop ) ) {
        _x += el.offsetLeft - el.scrollLeft;
        _y += el.offsetTop - el.scrollTop;
        el = el.offsetParent;
    }
    return { top: _y, left: _x };
}
var x = getOffset( document.getElementById('yourElId') ).left;

来自:Retrieve the position (X,Y) of an HTML element

点赞