1

ここには、iFrame 内から親 URL を見つけようとする記事が山ほどあります。

私はそれをしようとしているのではなく、現在のページの URL を Javascript で知りたいだけです。

どういうわけかこれは難しいように思えますが、理由がわかりません!

ということで、徹底解説。

私の親ページのHTMLは次のようになります

<html>
<body>
    <iframe id="mainWindow" name="mainWindow" src="myMainPage.aspx" style="border: 0; position:fixed; top:0; left:0; right:0; bottom:0; width:100%; height:100%"></iframe>
    <iframe src="myOtherPage.aspx"></iframe>
</body>
</html>

ノート; トップフレームのstyleは、画面全体に表示されます。私が iFrame を使用している唯一の理由は、サーバー制御のバックグラウンド タスク (長い話) を使用できないため、Javascript タイマーを介して 2 番目のフレームを使用していくつかの疑似バックグラウンド タスクを実行できるようにするためです。

したがって、ここにはフレームがありますが、実際にはフレームを使用してフレーム付きレイアウトを作成しているのではなく、ユーザーがアプリケーションを使用している間、プライマリ ページが静的なままであるようにするためです (これはバックエンド CMS システムであり、ライブ システムではありません)。顧客向けウェブサイト)

したがって、基本的に、バックグラウンド サービス機能を除くすべてがメインの iFrame 自体から実行され、親ページが実際にリロードされることはなく、非表示のフレームは必要に応じて処理を行いますが、ページのアンロードによって中断されることはありません。

ときどき、メイン ウィンドウに表示されているページの URL を知りたいことがあります。

理由がよくわかりません

window.location.pathname

動作しませんが、親ウィンドウの URL が表示されます。(www.mysite.com/myParent.aspx)

document.URL

親 URL も返す

document.getElementById("mainWindow").contentWindow.location.href

要素が親のように iFrame 内に存在しないため、機能しません。

必要なのは、iFrame 自体から iFrame に読み込まれるページの現在の URL です。つまり、非常に簡単に

What is the URL of the page on which this javascript is loaded

これは、さまざまなページでわずかに異なることを行うスクリプトを MasterPage にロードしているためです。

4

0 に答える 0