アプリ版:「スタンプのみでお礼する」機能のリリースについて

よろしくお願いします。

インラインフレームを利用したWebページを作成しています。
FLASHでボタンつくったボタンをクリックすると、
インラインフレームの中の表示が切り替わるようになっています。
そこで、どうしてもそのインラインフレームに表示される
ページのタイトルとファイル名を取得したいのですが、
何かよい方法はないでしょうか?

<div id="contents">
<iframe src="sample.html" name="frame" width="800" height="600" frameborder="0">
インラインフレーム機能を使用しています。インラインフレーム対応のブラウザで試してください(*´∀`)
</iframe>
</div>

リンク先は、FLASHのボタンにつくっています。
インラインフレームの表示内容がが切り替わった時に、
sample.html ⇒ hoge.html
hoge.htmlのタイトル名とファイル名を親フレームから
呼びだしたいと思っています。

よろしくお願いします。

A 回答 (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)を渡す。
    • good
    • 0
この回答へのお礼

丁寧な解説ありがとうございます。

勉強不足ですいません。
非常にわかりやすい解説で、よく理解できました。
ありがとうございます。

>一度構築がが完了したページではdocument.writeは使えません。
これは基本的なことなんですよね。

これを期に、JavaScriptにも興味を持って取り組みたいと思います。
ありがとう、ございました。

お礼日時:2008/08/22 16:05

フレームの中身にアクセスするには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>

補足日時:2008/08/22 10:47
    • good
    • 0
この回答へのお礼

ありがとうございます。
大変参考になりました。
また、補足説明にも回答をいただくと助かります。

返事が遅くなり申し訳ありませんでした。

お礼日時:2008/08/22 10:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!