人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

javascriptで作りたいと思いどなたかできるかどうかアドバイス頂けますでしょうか。
javascriptで現在のページからリンク先ページに移動した際に、同一ウインドウ内でリンクし、なおかつリンク先にあるiframeも変更したいと思ってます。
例:A.html→(A.html内のリンクからB.html及びB.html内のiframeをC.htmlに変更)→リンク後ページB.html(iframe:C.html)
すいませんがよろしくお願いします。

●質問者: RyuHarumaki
●カテゴリ:インターネット ウェブ制作
✍キーワード:HTML JavaScript アドバイス ウインドウ リンク
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● munyaX
●100ポイント

location.searchを利用する方法はいかがでしょうか?

以下、ちょっと手抜きですがサンプルです。

※セキュリティホール的な部分があるので、実装される際は御留意を。

A.html

---------------

<script></p> <p>location.href = 'B.html?c';</p> <p></script>

---------------


B.html

---------------

<script></p> <p>var file = location.search + '.html';</p> <p>var obj = document.createElement('iframe');</p> <p>obj.setAttribute('src', file);</p> <p>document.getElementById('canvas').appendChild(obj);</p> <p></script>

---------------


location.searchの変わりにCookieを使う手もあります。

◎質問者からの返答

回答ありがとうございます。

試してみたところ私の技術不足かもしれませんが、

リンクは飛んだのですが、リンク先のiframeがうまく変更しませんでした。

答えていただいたものを参考に試行錯誤してみたいとおもいます。

まだ、他にこれはというのがありましたら

よろしくお願いします。


2 ● ku__ra__ge
●300ポイント ベストアンサー

今ひとつ、質問文から希望とする動作が理解しきれていませんが、

1. A.html 内にあるリンク1から B.html を開いた場合は B.html 内の iframe に C.html が表示される。

2. A.html 内にあるリンク2から B.html を開いた場合は B.html 内の iframe に D.html が表示される。

3. B.html を直接開いた場合は、B.html 内の iframe に E.html 以外が表示される。

という動作をさせたいのであれば、以下のようなhtmlで実現できます。

A.html

<a href="b.html?C.html">C link</a>
<a href="b.html?D.html">D link</a>

B.html

<body onload="changeFrame()">
<script>
function changeFrame() {
 if(location.search.length > 0) {
 document.getElementById('fra').src=location.search.substr(1);
 }
}
</script>
<iframe id="fra" src="E.html">

※C.html, D.html, E.html は自前で適当なのを用意してください。

◎質問者からの返答

お返事遅れてすいません。

回答ありがとうございます。

試してみたところ無事できました。

今回で、getElementByIdとsearchなどよくつかわれることが多いと思いますが、

かなり勉強になりました。

回答いただいた方に感謝いたします。ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ