1

問題

私のアプリケーションには、サブディレクトリ内の子ページへのiframeを含む親ページがあります。

parent.html
subdir / child.html

子ページ内から、親を基準にした相対URL( "targetPage.html")を使用して親ページの場所を設定したいと思います。

parent.html
targetPage.html(正しいターゲット)
subdir / child.html(アクションのソース)
subdir / targetPage.html(正しくない

子供の中から、私は言うことができます:

window.parent.location = "targetPage.html";

...しかしもちろん、コードは子のコンテキストで実行されているため、(誤って)親ページを「subdir/targetPage.html」に移動します。

親のコードを呼び出すことは役に立ちません:

window.parent.myFunctionToNavigateToTarget(); // defined in parent to navigate to "targetPage.html"

...親の関数が子のコンテキストで実行されているため、同じ効果があります。

質問

そのウィンドウに対して相対的に解釈されるように、相対URLを使用して別のウィンドウの場所を設定するエレガントな方法はありますか?

4

1 に答える 1

2

親ウィンドウからホスト名とパスを取得してから、ターゲットページを追加できます。

var targetPage = 'somepage.html';

var url = window.parent.location.href;
if(url.indexOf('.') > -1){
   url = url.substring(0, url.lastIndexOf('/') + 1);
}
window.parent.location = url + targetPage;
于 2012-04-27T01:50:02.610 に答える