父级和iframe在同一个域中。 iframe具有动态高度并且没有自己的滚动条 - 滚动条位于父窗口上。滚动父窗口以在iframe中锚定
尽管进行了大量搜索,但我无法找到一种将父窗口滚动到加载时的iframe中的锚点的方式。即iframe网址是abc.com/iframe.html#link,但只加载iframe的顶部是可见的 - 父框架不滚动到#link。有没有人知道这种方式可以用JavaScript(在父母或iframe或两者)或其他方式?
感谢
父级和iframe在同一个域中。 iframe具有动态高度并且没有自己的滚动条 - 滚动条位于父窗口上。滚动父窗口以在iframe中锚定
尽管进行了大量搜索,但我无法找到一种将父窗口滚动到加载时的iframe中的锚点的方式。即iframe网址是abc.com/iframe.html#link,但只加载iframe的顶部是可见的 - 父框架不滚动到#link。有没有人知道这种方式可以用JavaScript(在父母或iframe或两者)或其他方式?
感谢
这是可以做到,虽然javascript.Suppose你点击一个链接,而不是锚链接它,试试这个:
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;
你试过用urlencoding#吗?
尝试:%23
谢谢,但我已经尝试这样做,因为这是一个需要不滚动的iframe父不会在iframe工作,它不会滚动,从该id_of_link父母(甚至假设我可以从父母的iframe的哈希值中找到id_of_link)。 –
编辑后的解决方案有时在Chrome中运行,而不是在Firefox中运行。由于原始页面只与IE9中的链接一起工作(不需要JavaScript),所以我决定保持独立,但感谢您的帮助 - 非常感谢。 –