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

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

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

コードをみると、

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

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

function xOpen(x)

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

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

●質問者: himawari-san
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Java をかし コード スクリプト データ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● aki73ix
●57ポイント

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

これは、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を入れて初期値を設定することも出来ます

◎質問者からの返答

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

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

助かりました♪

関連質問


●質問をもっと探す●



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