5

状況:

最初: id miframeのiframesuchenと呼ばれるアンカーを持つサイトを表示します。

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

2番。親フレーム。

目標: 親フレーム内に次のようなリンクを作成します。

<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 に答える