フレームの位置やハッシュを設定するさまざまな組み合わせを試しても、残念ながら親スクロールが発生しました。
これはiframeのコンテンツが同じドメイン上にあったために終了したので、フレームDOMをナビゲートするクロスサイトの問題はありませんでした。
親のリンクをtarget="myiframe"
の代わりに変更しました。デフォルトの実装をバイパスするスクロール機能を追加しました(親がiframeにジャンプするように思われる)。
/// for scrolling iframe without jumping parent page
function linkFunction(atag, event) {
event.preventDefault();
var iframe = document.getElementById('myiframe');
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
var name = atag.href.split('#')[1]; // get the hash
var anchor = innerDoc.getElementsByName(name)[0]; // find the corresponding anchor tag
// get position of the anchor relative to the current scroll position
var offset = anchor.getBoundingClientRect().top
// jump scroll the iframe content to the anchor
iframe.contentWindow.scrollBy(0, offset)
}
ませんjQueryとJavaScriptを無効には(単にデフォルトの親ジャンプに戻ります)場合は、まだ正常に動作します:
<a onclick="linkFunction(this, event);return false;"...
リンク機能は、次のようになります。
これは他の人に役立つことを願っています。
クロムで確認済み17 –
同じ問題があります。 ChromeとFFでテストしました。 –