リンクにふれると文字表示をさせたいのですが、NNでは
指定した色(黄色)と位置(中心)に表示できないので困っています。
タグは以下の通りです。
<HTML>
<HEAD><META HTTP-EQUIV="Content-Type"CONTENT="text/html;CHARSET=x-sjis">
<style type="text/css"><!--
body,tr,td {font-weight:bold; color:yellow}---></style>
<TITLE></TITLE>
<SCRIPT Language="JavaScript">
<!--
isIE4 = (navigator.appVersion.charAt(0)>=4 && (navigator.appVersion).indexOf("MSIE") != -1)
isNN4 = (navigator.appVersion.charAt(0)>=4 && (navigator.appName).indexOf("Netscape")!=-1);

function link_info(m) {
if(m==null) m = "";

if(isIE4) {
el = document.all("LINKMSG1");
el.innerHTML = m;
}
else if(isNN4) {
lay = document.layers["PARENT_LINKMSG"].document.layers["LINKMSG1"];
lay.document.open();
lay.document.write("<font style='font-size:12pt'>"+m+"</font>");
lay.document.close();
}
}
//-->
</SCRIPT>
</HEAD>

<BODY bgcolor="red" BORDER="0" topmargin="7" link="white" alink="yellow" vlink="yellow">
<center>
<ilayer name="PARENT_LINKMSG" width="100%" height="16">
<layer name="LINKMSG1"></layer>
<span id="LINKMSG1"></span>
</ilayer>
</center>
<br>
<center><font style="font-size: 10pt">
<a href="top.html" target="main" onMouseover="link_info('■■TOP■■')" onMouseout="link_info()">
 TOP</a> |
<a href="rink.html" target="main" onMouseover="link_info('■■リンク集です。■■')" onMouseout="link_info()">
 リンク集</a>
</font>
</center>
</BODY>
</HTML>

このQ&Aに関連する最新のQ&A

A 回答 (2件)

NNの4.75では以下の記述で上手く表示できましたが4.5ではどうでしょうか?



lay.document.write("<font style='font-size:12pt'>"+m+"</font>");

lay.document.write("<center><font style='color:yellow; font-size:12pt'>"+m+"</font></center>");
に変えただけです。
    • good
    • 0
この回答へのお礼

ありがとうございました。
上手くいきました。

お礼日時:2001/10/05 00:45

ネスケには詳しくないのですが…(^_^;l||)


スクリプトの
else if(isNN4) {
lay = document.layers["PARENT_LINKMSG"].document.layers["LINKMSG1"];
lay.document.open();
lay.document.write("<font style='font-size:12pt'>"+m+"</font>");
lay.document.close();
}
この部分を下記の様に
else if(isNN4) {
document.LINKMSG1.document.open();
document.LINKMSG1.document.write("<font style='font-size:12pt'>"+m+"</font>");
document.LINKMSG1.document.close();
}
同時にHTMLタグの
<BODY bgcolor="red" BORDER="0" topmargin="7" link="white" alink="yellow" vlink="yellow">
<center>
<ilayer name="PARENT_LINKMSG" width="100%" height="16">
<layer name="LINKMSG1"></layer>
<span id="LINKMSG1"></span>
</ilayer>
</center>
この部分を下記の様に
<BODY bgcolor="red" BORDER="0" topmargin="7" link="white" alink="yellow" vlink="yellow">
<div id="LINKMSG1" align="center">
</div>
と変更してみてはどうでしょうか?

この回答への補足

申し訳ありませんが、だめのようです。
なお、NN4.5を使用しています。

補足日時:2001/09/29 17:05
    • good
    • 0

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

このQ&Aと関連する良く見られている質問

Qif(document.all && navigator.appVersion.indexOf('Mac')!=-1)returnの意味

よろしくお願いします。
JavaScriptの勉強をしているのですが、参考にしている書籍に以下の構文が出てきまして、それの意味が分からなくて悩んでいます。

//MacIE4,5バグ 回避
if(document.all && navigator.appVersion.indexOf('Mac')!=-1)return

//以降に記してあるとおり、OSがMacintoshだった場合に何らかの処置を行うプログラムなのは分かるのですが・・。
navigator.appVersion.indexOf('Mac')!=-1の部分は、「navigator.appVersion.indexOf('Mac')が1ではなかったら、Macユーザーであるということ、で、falseが返されるのでしょうか?
しかし、そもそもnavigatorオブジェクトはブラウザの種類のことではないのか?と混乱してしまっています。
また、document.allがどのような役割を果たしているのかも分かりません。なぜここでdocument.allが出てくるのでしょうか?

どなたか分かる方いらっしゃいましたら、ご教授宜しくお願いします。

よろしくお願いします。
JavaScriptの勉強をしているのですが、参考にしている書籍に以下の構文が出てきまして、それの意味が分からなくて悩んでいます。

//MacIE4,5バグ 回避
if(document.all && navigator.appVersion.indexOf('Mac')!=-1)return

//以降に記してあるとおり、OSがMacintoshだった場合に何らかの処置を行うプログラムなのは分かるのですが・・。
navigator.appVersion.indexOf('Mac')!=-1の部分は、「navigator.appVersion.indexOf('Mac')が1ではなかったら、Macユーザーであるということ...続きを読む

Aベストアンサー

「document.all」は昔はIEにだけ存在するオブジェクトだったのでIEであるかどうかの判定に使われました。

今ではOperaやNetscape等でもIEへの互換の為に存在するのでIEかどうかの判定に使われる事は減ってきています。
IEであるかどうかの判定ではなく、純粋にdocument.allが在る(使える)かという判定にはもちろん使用されますが。

「navigator.appVersion」は確かにブラウザの種類なんですが、実際にはOS名も含まれていたりすのでOSの判定にも使われたりします。

また、 != -1 というのは indexOf関数の結果が 0~なら文字列が見つかったという意味(真偽ではなく、見つかった位置を返す関数)になるのでこういう比較式を使用しています。
(1でなかったらMacユーザという解釈はちょっと違います。)

参考URL:http://www.openspc2.org/JavaScript/ref/

Q

数十の<a>タグがあるHTMLファイルの中で、
<div id="blank">で囲まれた<a>タグ群のみをすべてtarget="_blank"にしたいと考えています。
該当する<a>タグすべてにtarget="_blank"を書くと、HTMLファイルの容量が大きくなるので、CSSのIDとJavaScriptを組み合わせて、実現できないものでしょうか。

Aベストアンサー

<base target="_blank">
<div id="blank">
 <!-- -->
</div>
<base target="_self">

Q

▼次のようにページ内のdivタグのidの名前によって、formタグ内の要素をdisableにすることはJava scriptによって可能でしょうか?

<div id="AA">のとき、別の場所にある<form id="BB">内のselect要素などすべての要素をdisableにする。

また同時に、id="BB"に指定したスタイルシートの記述を書き換えることは可能でしょうか?

何かよい方法をご存知でしたら教えてください。よろしくお願いいたします。

Aベストアンサー

>なぜか時々エラーが出ます。
ウチでちょっと試した程度ではエラーが発生しませんでした。
できましたら、発生したときのメッセージや場所また、ブラウザの種類なども教えてください。

以下は、予防的な意味での注意点についてちょっと書きます。
>return false;

は、必要ないです。
書かない方がいいと思います。
==nullの場合の処理が必要ないなら
!=nullにすればよいです。
もしくは
return false;でなくて
;
のように空文でもよいです。
あと、idに使っている名前と同じ名前を変数名として使わない方が良いです。
つまり、
id="soldout"の時に
var soldout;という風にはしない方が良いです。
同じでなければ、cartFormでもなんでもかまいません。
あと、scriptは、
<!--
(スクリプトの中身)
//-->
のように
<!--
//-->
で囲むようにします。

getElementById
は、ブラウザやのブラウザのバージョンによっては使えないことがあります。
その場合は、使えるかどうかを調べる必要があります。

<script type="text/javascript">
<!--
function stockStatus (num){
var f=document.getElementById("soldout");

if(f!=null){
for (var i =0; i<=f.length -1 ;i++){
f.elements[i].disabled=num;
}
}
}
//-->
</script>

>なぜか時々エラーが出ます。
ウチでちょっと試した程度ではエラーが発生しませんでした。
できましたら、発生したときのメッセージや場所また、ブラウザの種類なども教えてください。

以下は、予防的な意味での注意点についてちょっと書きます。
>return false;

は、必要ないです。
書かない方がいいと思います。
==nullの場合の処理が必要ないなら
!=nullにすればよいです。
もしくは
return false;でなくて
;
のように空文でもよいです。
あと、idに使っている名前と同じ名前を変数名として...続きを読む

Q
勘でいれたら・・・

はじめまして。JavaScript初めてです。
わからないことがあるので、教えてください。

画面を左右にフレームで分割して、左フレームのリストボックスから要素を選択すると、その要素に該当した表が右フレームに表示される、というものを作成しました。
左フレーム:name = index
右フレーム:name = main
こんな感じ(左フレーム)↓
<HTML>
<HEAD>
<SCRIPT language="JavaScript">
<!--
function disp(obj){
右フレームの表のHTML作成をしている

parent.main.document.open();
parent.main.document.write
(desc.innerHtml = 上で作成したHTML);
parent.main.document.close();
}
-->
</SCRIPT>
</HEAD>
<BODY onload="disp(form)">
※<DIV id="desc"></DIV>
<FORM name="form">
<SELECT name="MListBox" onchange="disp(form)">
<xsl: apply-templates select="~"/>
</SELECT>
</FORM>
*<DIV id="desc"></DIV>
</BODY>
</HTML>
  ・
  ・ <xsl文章>
  ・

初めは、※←のところがなく、右と左のフレーム両方に表が出力されてしまっていました。でも※←のところに<DIV id="desc"></DIV>を勘で入れたとたん、右フレームだけに表が出力されるようになりました。(期待の結果)
自分の予想では、*←のところのみで期待の結果が得られる予定で、(disp()でHTMLの出力を右フレームに指定しているから)何故※のところを追加したことで期待通りの動きをしたのかが謎です。

わかりづらい説明で申し訳ないですが、教えてくださる方がいらっしゃいましたら、どうぞお願いします。

はじめまして。JavaScript初めてです。
わからないことがあるので、教えてください。

画面を左右にフレームで分割して、左フレームのリストボックスから要素を選択すると、その要素に該当した表が右フレームに表示される、というものを作成しました。
左フレーム:name = index
右フレーム:name = main
こんな感じ(左フレーム)↓
<HTML>
<HEAD>
<SCRIPT language="JavaScript">
<!--
function disp(obj){
右フレームの表のHTML作成をしている

parent.main.document.open();
parent....続きを読む

Aベストアンサー

質問文にあるソースで目指しているものがいまいち掴み切れていないかも知れないので、見当違いなことを書くかもしれませんが…

<DIV id="desc"></DIV>

を複数記述する事で意図した結果になったということですが、それはおそらく記述エラーが元でそうなっているのだと思います。
id名は、各HTML文書内で固有の名前を与える属性として扱われます。 平たく言えば、一つのHTMLファイル内で、一つの要素に与えたid名はその一回しか使えません。 ですので、特定の要素で既に使われているid名を、それとは別の要素に対して与える事が許されていません。
ご質問文のソースの場合、一つのHTML文書内で同じid名が複数の要素に与えられる事になり、一つの特定の要素を絞り込むことができなくなっています。 おそらくは、JavaScriptが特定のid名を持つ一つの要素を取り出そうとし、同じid名を持つ要素が複数あるために特定の要素を識別するのに失敗したせいで、左のフレームに表示されるはずのスクリプトで生成したHTMLソースが、表示先を見失って表示されなくなっているだけだと思われます。(なぜエラーメッセージが出ないのかについては、IEの動作上の問題と言う事になるのではないでしょうか)
試しに、※の部分の<DIV id="desc"></DIV>を残して、*の部分の<DIV id="desc"></DIV>を消し、動作させてみてください。 それで元のように右フレームにだけ表示させたかったHTMLが左フレームにも表示されるようでしたら、一見期待通りの動きになった原因は、上記のように同じid名を複数の要素に与えたという記述ミスと、それから生じたスクリプトの動作不良と言う事になると思います。

ソース的にスマートに目的の動作を確保するのであれば、<DIV id="desc"></DIV>を複数記述するのではなく、スクリプト内の

parent.main.document.open();
parent.main.document.write(desc.innerHtml = 上で作成したHTML);
parent.main.document.close();

この部分の記述を

parent.main.document.open();
parent.main.document.write(上で作成したHTML);
parent.main.document.close();

に直すのが良いと思います。
フレームmainにだけ、スクリプトで生成したHTMLを表示するということが狙いだったのであれば、それまで意図通りの動作をしなかったのは、parent.main.document.write()の中で、「desc.innerHTML =」という記述をしているために、「上で生成したHTML」を、右フレーム内に書き出すのと同時に、descというidを持つ要素(*の<DIV id="desc"></DIV>)の中のHTMLソースとして再定義していたためと思われます。
スクリプトを上のように修正すれば、HTMLソースの書式違反による動作不良ではなく、スクリプトの正常な動作で、右フレームにだけスクリプトで生成したHTMLソースを表示させるという結果を得られると思います。

参考になれば。 見当違いでしたら、ごめんなさい。

質問文にあるソースで目指しているものがいまいち掴み切れていないかも知れないので、見当違いなことを書くかもしれませんが…

<DIV id="desc"></DIV>

を複数記述する事で意図した結果になったということですが、それはおそらく記述エラーが元でそうなっているのだと思います。
id名は、各HTML文書内で固有の名前を与える属性として扱われます。 平たく言えば、一つのHTMLファイル内で、一つの要素に与えたid名はその一回しか使えません。 ですので、特定の要素で既に使われているid名を、それとは別の要素...続きを読む


人気Q&Aランキング

おすすめ情報