滚动父窗口以在iframe中锚定

时间:2012-06-16 09:00:57

标签: javascript iframe scroll

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

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

由于

2 个答案:

答案 0 :(得分:2)

这可以通过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

答案 1 :(得分:0)

您是否尝试过urlencoding#?

尝试:%23