以前の質問にコード付きのご回答をいただきました。
http://q.hatena.ne.jp/1143446752
このコードに、レイヤ表示する内容(データ)の種類を追加したいのです。
コードをみると、
exp[1]='<font color="#ff0000">サンプル</font>'; //レイヤ1の表示内容
というような記述があるのですが、exp[3]などを追加すると、後ろの
function xOpen(x)
のIf文では対応できないようです。
どんな感じに対応させたらよいでしょう?
お知恵をかしてくださいませ。
お手数をおかけしてしまってすみません
これは、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を入れて初期値を設定することも出来ます
前回にひきつづき、ソースコードを考えてくださり、まことにありがとう御座います。
このソースコード、すごく参考になりました。
助かりました♪