複数フレームに同時ジャンプした後のタイトル表示

[統計] HTMLからXHTMLへの移行を進めていますか?



0   名前: マキ : 2006/03/26 17:46
こちらの小技集に載っていた
「フレームAにあるボタンで、フレームBとフレームCを同時にリンク先ページにジャンプさせる」
というのをインラインフレームでやってみたのですが、
ジャンプした後、ブラウザ上部のバーが「A」のタイトル表示のままになってしまいます。
ジャンプした後は「B」のタイトルを表示させたいのですが、どうすればいいでしょうか?
よろしくお願いします。。

1   名前: m035 : 2006/03/26 17:46  [URL
指摘すると、それはフレーム内のジャンプなので
親となるhtmlは変化していませんから、
タイトルが変わるはずはありません。
JavaScriptで対処します。
document.title=parent.B.document.title;
をjump()内の最後の行に追加してください。

2   名前: マキ : 2006/03/26 17:46
m035さん、教えていただき ありがとうございます。
勉強になりました!さっそくやってみます。

3   名前: マキ : 2006/03/26 17:46
やってみましたら、タイトル表示が変わるには変わるのですが、
表示されるまでに時間差がある・・・といいましょうか、
ボタンクリック1回では表示が変わらず 2回目のクリックで変わる、
というズレが生じてしまいます。

同時ジャンプのボタン複数と、普通のボタンとが混在してることとか
関係してるのでしょうか?
何度も初心者的質問ですみません。。

下記の問題部分のソース、、一応貼り付けました。
間違いだらけかと思いますが^^;、ご指摘いただけると幸いです。
(今までボタンと書いてきましたが、テキストボタンです。)


(HEAD内)

<SCRIPT TYPE="text/javascript">
<!--

function change1(){
parent.main.location.href = "top.html";
parent.sub.location.href = "new.html";
document.title=parent.main.document.title;
}

function change2(){
parent.main.location.href = "prof.html";
parent.sub.location.href = "profmenu.html";
document.title=parent.main.document.title;
}

function change3(){
parent.main.location.href = "baby.html";
parent.sub.location.href = "babymenu.html";
document.title=parent.main.document.title;
}

function change4(){
parent.main.location.href = "link.html";
parent.sub.location.href = "new.html";
document.title=parent.main.document.title;
}

// -->
</SCRIPT>



(BODY内)

<FORM>
<DIV class="iright">
<DIV class="tmenu1">
<!-- 各ページへのリンクメニュー -->
<P class="menu1">
<A href="javascript:change1()"> HOME </A>
<A href="javascript:change2()"> PROFILE </A>
<A href="blog.html" target="_blank"> BLOG </A>
<A href="javascript:change3()"> BABY </A>
<A href="new.html" target="_blank"> BBS </A>
<A href="javascript:change4()"> LINK </A>
</P></DIV>

<DIV class="iframe1">
<IFRAME src="top.html" name="main" width="565" height="470"
frameborder="0" title="" scrolling="auto">
IFRAME非対応ブラウザ用メッセージ</IFRAME>
</DIV>
</DIV>
</FORM>


よろしくお願いします。。

4   名前: m035 : 2006/03/26 17:46  [URL
これは、おそらく、フレーム内のhtmlのロードが完了していないために起こる問題です。
むしろ、フレームmainに読み込むhtmlのheadに下記を書いたほうが速いかもしれません。
<script type="text/javascript">
<!--
onload=function(){top.document.title=document.title};
//-->
</script>

5   名前: マキ : 2006/03/26 17:46
m035さん、また教えてくださり、
ありがとうございます!

書きかえてみましたら、
すぐにタイトルが表示されるようになりました。

いろいろとお世話になりました。
もっと勉強したいと思います^^

一覧へ戻る