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

【JavaScript/Frame/Html】
クリックした際に、_selfないし_top窓上で、<frameset>のページ”frame.html”を開き、かつ、フレームname=”up”、”menu”、”contents”のそれぞれに、top1.html(常に固定)、left2.html(常に固定)、hogehoge?.html(踏むリンクによって変化)を表示させたい場合。
hogehoge?をframe.htmlに渡すためのスクリプトをセットでお願いします。

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

▽最新の回答へ

1 ● bankband
●100ポイント ベストアンサー

【フレームを開くページ】

<html>

<body>

<a target="_self" href="frame.html?contents=hogehoge1.html">hogehoge1<a/><br>

<a target="_self" href="frame.html?contents=hogehoge2.html">hogehoge2<a/><br>

</body>

</html>

【フレームのページ】

<html>

<script langurage="javascript">

var frameSrc;

if (location.search.length > 1) {

//クエリ文字列を取得

var QS = location.search.substr(1).split("&"); 

for (idx in QS) {

//クエリ文字列のcontentsの値を変数にセット

if(QS[idx].split("=")[0] == "contents"){

var frameSrc = QS[idx].split("=")[1];

}

}

}

//画面出力内容(フレーム)を作成 contentsフレームには取得した変数をセット

var Html;

Html = "";

Html += "<frameset rows='100,*'>";

Html += "<frame src='top1.html' name='up'>";

Html += "<frameset cols='150,*'>";

Html += "<frame src='left2.html' name='menu'>";

Html += "<frame src='" + frameSrc + "' name='contents'>";

Html += "</frameset>";

Html += "</frameset>";

//フレームを出力

document.write(Html);

</script>

</html>

上記の内容でどうでしょうか?

説明が少なくて申し訳ないですが・・・

◎質問者からの返答

実験+検証+改変実装しました。何度か試してみて、bodyの中ではいけないとか、変数に入る色々なものは"ではなく'で囲まないといけないとか(frameborder='0')、/scriptの後にならbodyやnoframeが書けるなどはわかってきました(なぜ中じゃいけないのかわからないですがw)

あと、IEのセキュリティにひっかかってしまったので、その部分だけ取り扱いに注意が必要そうです。

ありがとうございました。

関連質問


●質問をもっと探す●



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