2012-06-16 38 views
4

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

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

感谢

回答

2

这是可以做到,虽然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; 

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

+0

谢谢,但我已经尝试这样做,因为这是一个需要不滚动的iframe父不会在iframe工作,它不会滚动,从该id_of_link父母(甚至假设我可以从父母的iframe的哈希值中找到id_of_link)。 –

+0

编辑后的解决方案有时在Chrome中运行,而不是在Firefox中运行。由于原始页面只与IE9中的链接一起工作(不需要JavaScript),所以我决定保持独立,但感谢您的帮助 - 非常感谢。 –

0

你试过用urlencoding#吗?

尝试:%23