- ベストアンサー
インラインフレームでページのタイトルを取得する方法
- インラインフレームを利用したWebページにおけるページタイトルとファイル名の取得方法について調査しています。
- FLASHで作成したボタンをクリックするとインラインフレーム内の表示が切り替わるWebページを作成しており、切り替わった際のページタイトルとファイル名を取得したいです。
- 現在、インラインフレームの中に表示されるページのタイトル名とファイル名を親フレームから呼び出す方法についてのヒントやアドバイスを求めています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
一度構築がが完了したページではdocument.writeは使えません。 (使うと新しいページを作る事になる) また、this は使う場所、タイミングで意味が違ってくるので、単純に場所を移すと動かなくなります。 以下、例です。 function hoge(iframe){ //受けとったiframeオブジェクトからフレームに読み込まれているページのdocumentを取得 var iframedocument = iframe.contentWindow.document; // 'showurl'の中身を書き換える。 document.getElementById('showurl').innerHTML = iframedocument.location.href + '(' + iframedocument.title +')'; } <p id="showurl"></p>←title等を表示する場所 <iframe ~ onload="hoge(this)">←this(ここではiframe)を渡す。
その他の回答 (1)
- steel_gray
- ベストアンサー率66% (1052/1578)
フレームの中身にアクセスするにはcontentWindowを利用します。 切り替わったら、というのはonloadでいいかと思います。 例 iframeの中身のロード完了の度にtitleをalertで表示する。 <iframe ~ onload="alert(this.contentWindow.document.title)"> ファイル名は、location.hrefやlocation.pathnameを参照しますが、 余計なパス等が付いてますからmatchなどで抜き出します。
お礼
ありがとうございます。 大変参考になりました。 また、補足説明にも回答をいただくと助かります。 返事が遅くなり申し訳ありませんでした。
補足
ログインパスワードを忘れてしまい、 返事が大変遅くなり、本当に申し訳ありませんでした。 また、回等ありがとうございます。 回答を参考に下記のようにしてみたのですが、 どうも思うようにいきません。 このような使い方はできないのでしょうか? URLを書き出すと別ウィンドウで開いてしまいますし、 this.contentWindow.document.titleの部分は、 うまく動いてないような気がします。 初めてなので、すいません。 よろしくお願いします。 <body> どうしてもここに表示したい。 <script type="text/JavaScript"> <!-- function hoge(){ var url=location.href; document.write(url); document.write(this.contentWindow.document.title); } //--> </script> <div> <iframe src="sample.html" name="frame" width="800" height="600" frameborder="0" onload="hoge()"> インラインフレーム機能を使用しています。インラインフレーム対応のブラウザで試してください(*´∀`) </iframe> </div> </body>
お礼
丁寧な解説ありがとうございます。 勉強不足ですいません。 非常にわかりやすい解説で、よく理解できました。 ありがとうございます。 >一度構築がが完了したページではdocument.writeは使えません。 これは基本的なことなんですよね。 これを期に、JavaScriptにも興味を持って取り組みたいと思います。 ありがとう、ございました。