Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 滚动父窗口以在iframe中定位_Javascript_Iframe_Scroll - Fatal编程技术网

Javascript 滚动父窗口以在iframe中定位

Javascript 滚动父窗口以在iframe中定位,javascript,iframe,scroll,Javascript,Iframe,Scroll,父级和iframe位于同一个域上。Iframe具有动态高度,并且没有自己的滚动条-滚动条位于父窗口上 尽管进行了大量搜索,但在加载时我找不到将父窗口滚动到iframe中的锚点的方法。即iframe url为abc.com/iframe.html#link,但加载时仅iframe顶部可见-父帧不会滚动到#link。有人知道用javascript(在父级或iframe中,或两者中)或其他方式可以实现这一点吗 谢谢这可以通过javascript完成。假设您单击链接,而不是锚定链接,请尝试以下操作: d

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

尽管进行了大量搜索,但在加载时我找不到将父窗口滚动到iframe中的锚点的方法。即iframe url为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;

发件人:

您是否尝试对#进行URL编码


Try:%23

谢谢,但我已经尝试过了,但它在iframe中不起作用,因为需要滚动iframe的是父级,而不需要从父级滚动到id_of_链接(即使假设我可以从父级的iframe的哈希值中找到id_of_链接)。编辑后的解决方案有时在Chrome中有效,而不是在Firefox中。由于最初的页面只使用IE9中的链接(不需要javascript),所以我决定离开这里,但感谢您的帮助-非常感谢。