4

私はここにいるのは初めてです...すべてが正しく行われていることを願っています;-D

同様の問題を持ついくつかのトピックを見つけましたが、それらは私が到達したいものに到達したいとは思われません。

長いコンテンツ領域を持つ Web サイトを持っています。Web サイトにはスクロールバーがあります。このコンテンツ領域内のどこかにiframe. これによりiframe、全高 (サポート ボード) のサイトが実装されiframe、コンテンツheightが変更されたときに のサイズが変更されるため、iframeにはスクロールバーがありません。今私が欲しいのは、つまり、iframeの先頭だけでなく、thishttp://www.mywebsite.com/#newにアンカーが配置されている位置までページをスクロールしたいということです。iframeiframe

そのため、iframeそれ自体をスクロールする必要はありません (常に 100% の高さです) が、親フレームはiframe、アンカーが配置されている位置 (内部) にスクロールする必要があります。

これを解決する方法が本当にわかりません。アンカーを iframe の URL に追加しても役に立たず、アンカーを Web サイトの URL に追加するだけでは機能しません。私はjavascriptなどで何かを実装する必要があると確信していますが、方法がわかりません! iframe 内の Web サイトと親サイトの両方のコードを変更できます。

//EDIT
ああ、忘れていました...同じページ内のジャンプではないため、onClick-Actionまたはリンク属性(関連する投稿の解決策となる継ぎ目です)では実行できません。ページはリロードされており、アンカーにジャンプする必要があります :-D したがって、自分で URL を入力しているときに機能する必要があります...
必要なものを理解していただければ幸いです!

//EDIT2 可能なフレームワーク:

  • メインページはワードプレスのブログなのでJQueryも可能!
  • iframe ページは単純なマシン フォーラム ( SMF ) です - ここにはネイティブ JS しかないと思います!
4

1 に答える 1

3

これがあなたを「正しい道」に導く答えです。

iFrame が常にメイン ページ内の同じ位置にあると仮定すると、メイン ページを次のポイントまでスクロールする必要があります: iframe y 座標 + iFrame 内のアンカー座標。

だから私はあなたをアンカーと呼びます:<a name="anchor1">Here</a>そしてあなたはiFrame:<iframe id ="myiFrame" ...

ページ内の iframe の位置を取得するには、 を使用$("#myiFrame").position().topして iFrame 内のアンカーの位置を取得し$("#myiFrame").contents().find('a[name=anchor]').position().topます。

したがって、スクリプトは次のようになります。

var y = $("#myiFrame").position().top + $("#myiFrame").contents().find('a[name=anchor]').position().top;
$(window).scrollTop(y)
于 2013-07-27T18:45:52.573 に答える