こんばんは。
下記のようなページを作っているのですが、質問です。
------¦-------------------
¦ B
¦-------------------
¦
A ¦ C
¦
¦
¦
¦
---------------------------
(↑ずれていたらスミマセン…)
ABCはそれぞれテーブルのセルの中に入れています。
Cの部分はIframe使用です。
Aというセルにリンクを幾つか置く予定です。
それは通常Cのインラインフレームの中に表示されます。
質問の内容は、そのAの中にあるリンクの一つをクリックすると、Bの領域とCの領域にそれぞれ違うページを表示出来ないかというご相談なのです。
Aの中のリンクの一つをクリックすると、Bにサブメニューが出て、同時にCにはBのサブメニューに対する説明が出る…というような。
そしてBに表示されたサブメニューをクリックするとCに次々表示される、という形にしたいのです。
要領を得ない質問で恐縮ですが、どなたかお知恵をお貸し頂けると幸いです。宜しくお願い致します!
No.4ベストアンサー
- 回答日時:
> 別ページを作る」と仰ってらっしゃる方法
#2さんの回答の方法のことです。
> Bはフレームではなくてただの<td>なのですが
Bのセルの中にもCと同じようにiframeを置いてフレームを書き換える、という手段を提案されています。
以下は前回のサンプルを少し変更したものです。
前回のものよりはご希望に近いとは思いますが、カスタマイズするにはそれなりの知識が要るという点ではかわっていません。
<html>
<head>
<title>Menu</title>
<script type="text/javascript">
<!--
function MenuChange(Mno) {
var AllTag = document.getElementById('CellB').getElementsByTagName('*');
for(var i=0;i<AllTag.length;i++) {
if(AllTag[i].className.match(/^Menu(.+)/))
AllTag[i].style.display = (RegExp.$1 == Mno)?'block':'none';
}
AllTag = document.getElementById('CellC').getElementsByTagName('*');
var Iframe;
var Flag = 0;
for(var i=0;i<AllTag.length;i++) {
if(AllTag[i].className.match(/^Menu(.+)/)) {
if(RegExp.$1 == Mno) {
AllTag[i].style.display = 'block';
Flag = true;
} else {
AllTag[i].style.display = 'none';
}
} else if(AllTag[i].tagName.match(/iframe/i)) {
Iframe = AllTag[i];
}
}
Iframe.style.display = (Flag)?'none':'block';
}
function SubMenuClick() {
var AllTag = document.getElementById('CellC').getElementsByTagName('*');
for(var i=0;i<AllTag.length;i++) {
if(AllTag[i].className.match(/^Menu(.+)/)) {
AllTag[i].style.display = 'none';
} else if(AllTag[i].tagName.match(/iframe/i)) {
AllTag[i].style.display = 'block';
}
}
}
//-->
</script>
</head>
<body>
<table border width=700>
<tr>
<td rowspan="2" width=100 valign="top">
<a href="http://www.google.co.jp/" target="iframe" onclick="MenuChange(1);">google</a><br>
<a href="#" onclick="MenuChange(2);return false;">goo</a><br>
<a href="http://www.yahoo.co.jp/" target="iframe" onclick="MenuChange(3);">yahoo</a>
</td>
<td id="CellB">
<div class="Menu1" style="display:none;">
メニュー1です。
</div>
<div class="Menu2" style="display:none;">
<a href="http://www.goo.ne.jp/" target="iframe" onclick="SubMenuClick()">goo</a>
<a href="http://oshiete.goo.ne.jp/" target="iframe" onclick="SubMenuClick()">教えて!goo</a>
</div>
<div class="Menu3" style="display:none;">
メニュー3です。
</div>
</td>
</tr>
<tr>
<td id="CellC" height="400" valign="top">
<iframe name="iframe" style="display:none;" height="400" width="590"></iframe>
<div class="Menu2" style="display:none;">
<h2>goo</h2>
<p>gooって何? gooでは、サーチ・コンテンツ・コミュニティ・ショッピング・ビジネス・リサーチなどの総合的なWebサービスを提供しています。</p>
<p>教えて!gooとは? 知りたい事を質問して回答して貰えるサービスです。</p>
</div>
</td>
</tr></table>
</body>
</html>
何度もお手を煩わせてしまい、申し訳御座いませんでした。
折角素晴らしい回答を頂戴したのに、使いこなせず(まだまだ勉強が必要です…)この度は申し訳御座いませんが、諦め→スキルアップしてから再挑戦、という形にさせて頂きます。
本当に本当に有難う御座いました!
サンプルはもう、何も云う事無く素晴らしく、思う通りの動作なのですが…どうにも知識不足が否めません。
本当に有難う御座いました!
No.3
- 回答日時:
Javascript部分がちょっと増えますが
セルBの内容やセルCに表示するメニューの説明を別ページにしないバージョンのサンプルを作ってみました。
(内容量によっては、素直に別ページに作った方がよさそうですが、内容量が少ない場合に。)
<html>
<head>
<title>Menu</title>
<script type="text/javascript">
<!--
function MenuChange(Mno) {
var AllTag = document.getElementById('CellB').getElementsByTagName('*');
for(var i=0;i<AllTag.length;i++) {
if(AllTag[i].className.match(/^Menu(.+)/))
AllTag[i].style.display = (RegExp.$1 == Mno)?'block':'none';
}
AllTag = document.getElementById('CellC').getElementsByTagName('*');
for(var i=0;i<AllTag.length;i++) {
if(AllTag[i].className.match(/^Menu(.+)/)) {
AllTag[i].style.display = (RegExp.$1 == Mno)?'block':'none';
} else if(AllTag[i].tagName.match(/iframe/i)) {
AllTag[i].style.display = (Mno == 0)?'block':'none';
}
}
}
function SubMenuClick() {
var AllTag = document.getElementById('CellC').getElementsByTagName('*');
for(var i=0;i<AllTag.length;i++) {
if(AllTag[i].className.match(/^Menu(.+)/)) {
AllTag[i].style.display = 'none';
} else if(AllTag[i].tagName.match(/iframe/i)) {
AllTag[i].style.display = 'block';
}
}
}
//-->
</script>
</head>
<body>
<table border>
<tr>
<td rowspan="2">
<a href="#" onclick="MenuChange(1);return false;">メニュー1</a><br>
<a href="#" onclick="MenuChange(2);return false;">メニュー2</a><br>
<a href="xxx.html" target="iframe" onclick="MenuChange(0)">メニュー0</a>
</td>
<td id="CellB">
<div class="Menu1">
<a href="aaa.html" target="iframe" onclick="SubMenuClick()">サブメニュー1-a</a>
<a href="bbb.html" target="iframe" onclick="SubMenuClick()">サブメニュー1-b</a>
</div>
<div class="Menu2" style="display:none;">
<a href="ccc.html" target="iframe" onclick="SubMenuClick()">サブメニュー2-c</a>
<a href="ddd.html" target="iframe" onclick="SubMenuClick()">サブメニュー2-d</a>
</div>
<div class="Menu0" style="display:none;">
サブメニューなし。
</div>
</td>
</tr>
<tr>
<td id="CellC">
<iframe name="iframe" src="" style="display:none;"></iframe>
<div class="Menu1">
メニュー1の説明文<br>
メニュー1の説明文
</div>
<div class="Menu2" style="display:none;">
メニュー2の説明文<br>
メニュー2の説明文<br>
メニュー2の説明文
</div>
</td>
</tr></table>
</body>
</html>
この回答への補足
御礼遅くなりまして申し訳御座いません。
首記の方法を試させて頂きましたがどうしても上手くいきません。
上手くいかない内容。
1.セルBにサブメニューを表示させるのは1つのメインメニューリンクからだけで良いのに、リンクを未選択の状態からサブメニューが出てしまう。
2.上記の内容を取り敢えず無視。サブメニューを表示させたいメインメニューからのリンクをクリックすると、iframeに何も表示されない。但しサブメニューは表示され、それをクリックするとiframeにはサブメニューの内容が表示される。
です。
どうも内容的に初心者の手には余るようで…。
もしお手すきでしたら「別ページを作る」と仰ってらっしゃる方法をご教授頂けませんでしょうか。
宜しくお願い致します。
No.2
- 回答日時:
kokorone様のご意見に補足させて頂く形になります。
2つのフレームのページを同時に変更する、
簡単なサンプルを載せさせて頂きました。
_/_/_/_/_/_/_/_/_/_/
<script>
function sample(){
Bのフレーム名.location.href="アドレス";
Cのフレーム名.location.href="アドレス";
}
</script>
<a href="#" onClick="sample()">
_/_/_/_/_/_/_/_/_/_/
の様にAタグ内の「onClick」イベントでsampleと言うファンクションが実行されます。
複数の処理を行う際に便利です。
【Bのフレーム名】【Cのフレーム名】と言う所は各フレーム名に変更して下さい。
>Bに表示されたサブメニューをクリックするとCに次々表示される
はB内で
<a href="アドレス" target="Cのフレーム名">
で可能です。
ですので、BC共に名前を付けておく必要が有ります。
「onMouseover」はリンクにカーソルを乗せた時、
「onClick」はリンクをクリックした時に呼び出されますので、
かぶる事はありません。
長々と書かせて頂きましたが、マトに合った解答で御座いませんでしたらすみません。
この回答への補足
ご教授有難う御座います。
なのに、JavaScriptに関しても全く初心者以上の初心者で、申し訳ない事に記載されている内容が理解出来ませんでした…。
Bはフレームではなくてただの<td>なのですが、それでもこの方法は有効なのでしょうか?
また、現在別ページを呼び出すフレームではなく、インラインフレームを使用しているのですがその場合でも有効なのでしょうか。
No.1
- 回答日時:
JavaScriptで解決します。
まずは、考え方だけ説明します。
1)AのリンクのOnClickイベントで、
Bのセル内容の変更と、CのIFRAME
のURLを変更します。
2)BのリンクのOnClickイベントで、
CのIFRAMEのURLを変更します。
詳細は、明日にでも。。
サンプルが見つかれば、お知らせします。
この回答への補足
有難う御座います。
あの…一つ問題なのですが、実は書き漏れで(Javaを使うのですか…!)Aのセルの中でOnMouseoverイベントを使ってしまっています。
(同じセル内に
<A onmouseover="menu.innerText='**です。'" onmouseout="menu.innerText=''" href="../**/index.htm" target="iframe">***</A><BR>
<FONT id=menu color=black size="1"></FONT>
のような形です(OnClickイベントとは異なるかも知れませんが…)。
kokorone様の仰るJavaのOnClickイベントとは被らないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- gooブログ ブログの記事を書きだしのみに表示したい 1 2022/06/25 19:11
- その他(Microsoft Office) EXCELでバーコードを作成すると白くなってコードが見えません 1 2022/04/04 14:24
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/04/21 13:46
- Excel(エクセル) 【Excel】hyperlink関数を解除してもハイパーリンクが活きるようにできますか? 3 2023/05/22 11:22
- Windows 10 windows11 update の「更新の再開」について初歩的な質問なのですが 1 2022/10/19 00:57
- ホームページ作成・プログラミング CGIが実行可能なHP領域又はレンタルサーバーでおすすめの所を教えてください 現在ホームページ領域の 1 2023/01/01 11:47
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- その他(ブラウザ) bingチャットの内容(縦長)をスクリーンショットで保存する方法 3 2023/02/28 02:13
- ドメイン・サーバー・クラウドサービス 自作サイトをサーバーにアップロードしたのですが… 2 2022/11/08 18:12
- その他(パソコン・スマホ・電化製品) とある情報が知りたく、検索して表示されたリンクをクリックしてページを見て、そこに知りたい情報の説明の 3 2022/11/26 18:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
(Javascript)印刷するファイル...
-
bodyにidをつける理由は何ですか?
-
iframeのsrcにページ内リンク(...
-
divやiframeの読み込み時バグ @...
-
テキストボックス内にハイパー...
-
タブページの中にframeページを...
-
bodyにwidth:100%をつける理由は?
-
<a href="#" …>の意味を教えて...
-
別ファイルのfunctionの読み込み方
-
function の return 値を表示し...
-
JavascriptとJqueryを混在し記述
-
jQueryでdivをクリックし別窓で...
-
JavaScriptでiframeの内容を「...
-
base64encodeでの文字化けについて
-
相対パスと絶対パスの速度
-
以下の内、どれでも良いので可...
-
外部ファイル名を変数で指定で...
-
サブウィンドウの大きさを複数...
-
複数のJavascriptを1つのscrip...
-
Dreamweaver で 外部JSを読み込...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
bodyにidをつける理由は何ですか?
-
テキストボックス内にハイパー...
-
(Javascript)印刷するファイル...
-
ハイパーリンクに下線を表示す...
-
別ページのページ内リンクでの...
-
横スクロールを右から左へ・・・
-
bodyにwidth:100%をつける理由は?
-
ボタンが押されたらWebページの...
-
テーブル内の数値を自動で計算...
-
"mailtoでメールの【氏名】【性...
-
ページの読み込みが完了してか...
-
テキストをクリックすると答え...
-
インラインフレーム内のスクロ...
-
<body id=~>の用途は?
-
複数のiframeの読み込みについて
-
Chromeがiframe内の「#~」に釣...
-
-css- ページオープン時やリロ...
-
ページによって表示位置がずれ...
-
<HR>タグでつくる四角形につい...
-
リンクをクリックすると文字が...
おすすめ情報