5

情况:

第一:id为 miframe的iframe,显示一个带有名为suchen的锚点的站点,即

<div id="suchen"></div>. 

第二。父框架。

目标:在父框架内创建一个链接,看起来像

<a class="LINK0" title="" href="javascript:springen('suchen');">w/e</a> 

使iframe中的内容滚动到锚点suchen。我的做法。

function springen(anker) { 
    var childWindow =  document.getElementById("miframe").contentWindow;

    // this should emulate a click on the ptAnchor DIV's child A HREF.
    //childWindow.document.getElementById(anker).firstChild.click();
    //childWindow.document.getElementById(anker).scrollIntoView();
    // alternatively, this will simply scroll the child window to the top-left corner
    //childWindow.scrollTo(0,200);
}

childWindow.scrollTo(0,200);到目前为止,该滚动发生在 200 处。但我需要滚动到锚点,无论它在iframe中的哪个位置。想法?

4

2 回答 2

11

通常你会使用类似的链接<a href="#your_anchor_name_or_id">Go to the anchor</a>。如果您想使用 JavaScript 执行此操作,您可以更改window.location.hash. 以下代码应在框架内执行此操作:

document.getElementById("the_id_of_your_iframe").contentWindow.location.hash = "your_anchor_name_or_id";

如果您不想更改哈希值,MDN 上有一个示例。您可以将其修改为 iframe。

于 2012-12-15T15:52:50.777 回答
3

以下代码应将 iframe 滚动到锚点的位置:

function springen(anker) { 
    var childWindow =  document.getElementById("miframe").contentWindow;
    childWindow.scrollTo(0,childWindow.document.getElementById('suchen').offsetTop);
}

编辑:

JSFiddle:http: //jsfiddle.net/pkvhw/6/

于 2012-12-15T15:12:07.000 回答