Javaスクリプトの質問です。


以前の質問にコード付きのご回答をいただきました。
http://q.hatena.ne.jp/1143446752
このコードに、レイヤ表示する内容(データ)の種類を追加したいのです。

コードをみると、

exp[1]='<font color="#ff0000">サンプル</font>'; //レイヤ1の表示内容

というような記述があるのですが、exp[3]などを追加すると、後ろの

function xOpen(x)

のIf文では対応できないようです。

どんな感じに対応させたらよいでしょう?
お知恵をかしてくださいませ。

回答の条件
  • URL必須
  • 1人5回まで
  • 登録:
  • 終了:2006/04/04 15:35:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:aki73ix No.1

回答回数5224ベストアンサー獲得回数27

ポイント57pt

お手数をおかけしてしまってすみません

これは、HTMLの本文内で

<SPAN ID="INFO1"><ilayer name="INFO1"><layer name="INFO2">ここにレイヤーの内容が挿入される

</layer></ilayer></SPAN>

という形式になっていて、 SPAN IDの箇所が IE、及びNetscape6~、内側の ilayer ,layer タグが Netscape4の表示形式になっています(両方のブラウザに対応させるため)

SPAN IDと ilayerの 名前が同じになっているのは互いに無視できるので、同じになっていますが、分かりにくいのであれば別々にしてしまっても構いません

例えば、新しく挿入するのであれば、

<SPAN ID="LAYER3A"><ilayer name="LAYER3B"><layer name="LAYER3C">初期値3

</layer></ilayer></SPAN>

のようにして

x=3 をこれに適用して

 if(x==3)if(document.layers){

// Netscape 4.x

  document.LAYER3B.document.LAYER3C.document.open();

  if(flg[x])

    document.LAYER3B.document.LAYER3C.document.write(exp[x]);

  else

    document.LAYER3B.document.LAYER3C.document.write("");

  document.LAYER3B.document.LAYER3C.document.close();

 } else {

// IE 4~,Netscape 6~

  if(flg[x])

    document.getElementById("LAYER3A").innerHTML=exp[x];

  else

    document.getElementById("LAYER3A").innerHTML="";

 }

というコードを加えればよいでしょう

(これなら、x=3と変数"LAYER"の後の数字が対応しているので追加し易いと思います)

http://nifberry.727.net/test/hatena186a.htm

あくまでもサンプルのつもりだったのですが、番号との対応が分かりやすいように整理したうえで、機能を加えてみたのでいじってみるとよいでしょう

exp2 に内容がはいってるのでレイヤーが消えるのではなく変化するようになっていますが、これを空白にすれば削除できます

また、

<SPAN ID="LAYER4A"><ilayer name="LAYER4B"><layer name="LAYER4C">

<SCRIPT LANGAGE="JavaScript"><!--

  document.write(exp2[4]); //初期値4

//--></SCRIPT>

</layer></ilayer></SPAN><BR>

のようにJavaScriptを入れて初期値を設定することも出来ます

id:himawari-san

前回にひきつづき、ソースコードを考えてくださり、まことにありがとう御座います。

このソースコード、すごく参考になりました。

助かりました♪

2006/03/30 22:01:54

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません