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

質問させてください
下記のような構造の 1.html と 2.html があるとします。
1.html:単体構造で2.htmlへのリンクがあります。
2.html:フレーム構造でB・Cのセットで構成されています。

実現したい事
●1.htmlから2.htmlへのリンクを複数用意し、どのリンクをクリックしたかによってB.Cの参照先がそれぞれ変わる
●2.htmlが直接開かれた時(1.htmlを介さず)には2.html内に記述された参照先が読み込まれる

 1.html
┌───┐
│     │
│ A   │
│     │
└───┘

 2.html
┌───┐
│ B   │
├───┤
│ C   │
└───┘

条件
JavaScriptのみ、CGI等は使えない
1.htmlと2.htmlは通常のリンクであり、1.htmlと2.htmlが同時に開いている状態ではない事(親子関係ならば簡単に可能ですよね?)


何卒皆様のお力をお貸しくださいませ。
説明が下手なのでイメージがちゃんと伝わるか心配なのですが、不足な点がありましたらご指摘下さい、補足させて頂きます。
宜しくお願い致します。

A 回答 (2件)

2.html を document.write を使って動的に作成する方法です。



まず、1.htmlの どのリンクから遷移してきたかを判断できるようにします。

----- 1.html -----
<a href="2.html?1>リンク1</a><br>
<a href="2.html?2>リンク2</a><br>
------------------

2.html は、JavaScriptのみで作成します。
----- 2.html -----
<html>
<script langage="JavaScript">
<!--
 var f1 = "21.html"; // Bのデフォルトの参照先
 var f2 = "22.html"; // Cのデフォルトの参照先
 if (location.search != "") { // パラメータがある場合
  if (location.search.substring(1) == "1") {
   // パラメータが 1 の場合は B に 23.html, C に 24.html を表示する
   f1 = "23.html";
   f2 = "24.html";
  } else if (location.search.substring(1) == "2") {
   // パラメータが 2 の場合は B に 25.html, C に 26.html を表示する
   f1 = "25.html";
   f2 = "26.html";
  }
 }
 // ここから HTML を動的に作成する
 document.open();
 document.write("<html>\n");
 document.write("<frameset rows='50%,50%'>\n");
 document.write("<frame name='fra1' src='" + f1 + "'>\n");
 document.write("<frame name='fra2' src='" + f2 + "'>\n");
 document.write("</frameset>\n");
 document.write("</html>\n");
 document.close();
//-->
</script>
</html>

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

こんな感じでいかがでしょうか?
    • good
    • 0
この回答へのお礼

完璧です。なんの問題もありません
こんなにも簡単に実現可能だとは思いもよりませんでした。
次ページに対する値の送信は他の用途でも使えそうです。
ありがとうございました!!

お礼日時:2004/08/25 16:52

すでに回答が出てしまいましたね。

。。
でもせっかく作ったので、こんな感じでどうでしょう?

//2.htmlの内容。 
<html>
<script language="javaScript">
 
  var TOP_URL = "blank";    // デフォルトで上フレームに表示するページ(blank.html)
  var BOTTOM_URL = "blank";  // デフォルトで下フレームに表示するページ(blank.html)
 
  a = location.search.split("&");
  if ( a.length == 2 ) {
   b = a[0].split("=") ;
   c = a[1].split("=") ;
   TOP_URL = b[1] ;
   BOTTOM_URL = c[1] ;
  }
 document.write("<frameset rows=150,* >") ;
 document.write("<frame src=" + TOP_URL + ".html> ") ;
 document.write("<frame src=" + BOTTOM_URL + ".html> ") ;
 document.write("</frameset> ") ;
</script>
</html>
 
// 1.htmlのリンク部分。
<a href="2.html" >リンク1</a><br>          デフォルトページが表示される。
<a href="2.html?a=xxx&b=yyy" >リンク2</a><br>    上にxxx.html、下にyyy.htmlが表示される

少しでも参考になれば幸いです。
    • good
    • 0
この回答へのお礼

とても参考になります。
CGIでは簡単にクエリストリングを次ページで変数として使えるのですがJavaScriptではこのようにsplitをつかって分解する必要があるのですね。
とにかく今回の問題もおかげさまで解決しましたが。
教えていただいたことは他の部分にも大いに使えるためとても感謝しています。
ありがとうございました!!

お礼日時:2004/08/25 16:57

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