CGIに検索のキーワードを渡すために、セレクトメニューを2つ使って、キーワードを選ぶ仕組みを、表示・非表示の定義をjavascriptで下記のように書きました。
function menu(form)
{
if (form.mif[0].selected){
m1.style.display='';
m2.style.display='none';
m3.style.display='none';

}

if (form.mif[1].selected){
m1.style.display='none';
m2.style.display='';
m3.style.display='none';
reSel(document.mm2.keyword.options);
}

if (form.mif[2].selected){
m1.style.display='none';
m2.style.display='none';
m3.style.display='';
reSel(document.mm3.keyword.options);
}
}
ところが、NNではエラーになってしまいます。
NNでも上のセレクトメニューを選択すると、下のセレクトメニューの内容が変わる動きを実現できるよい書き方を教えてください。

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

A 回答 (1件)

ネスケとIEではスタイルシートへの対応度が違うので、素直に書いたほうがよいのでは?



<script type="text/javascript">
<!--
function listchg(f) {
var idx = f.list1.selectedIndex;
var items = f.list2.options;
items.length=0;
if (idx==0) {
items[items.length] = new Option("type1-item1");
items[items.length] = new Option("type1-item2");
items[items.length] = new Option("type1-item3");
} else {
items[items.length] = new Option("type2-item1");
items[items.length] = new Option("type2-item2");
}
items.selectedIndex=0;
}
//-->
</script>
    • good
    • 0
この回答へのお礼

ありがとうございました。お礼が大変遅くなって申し訳ありませんでした。言い訳ですが、別件に追われていたので...。実は、まだ書いて試していないのですが、やってみます。

お礼日時:2001/12/25 09:24

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

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

QJavaScriptで【window.google={kHL:"ja"};】という記述はどういう意味?

JavaScriptで【window.google={kHL:"ja"};】という記述はどういう意味?


YOUTUBE日本語版
http://jp.youtube.com/
のHTMLソースを見ていたら、



<script type="text/javascript">
    window.google={kHL:"ja"};
</script>


という記述を目にしたのですがこれはどういう意味あいというか目的のものなのでしょうか?


教えていただければ幸いです。

Aベストアンサー

これは、window.googleに'kHL'というキー(値は'ja')を持つ連想配列を
作成しています。

JavaScriptでの連想配列は

var 変数名 = {
キー : '値',
キー : '値',
:,
キー : '値'
};

というような感じで作成します。
キーはダブルクォートまたはシングルクォートで囲まなくても
いいようです。

参考URL:http://javascriptist.net/docs/basic_hash.html,http://www.openspc2.org/JavaScript/kouza2007/array/hash/index.html

Q&= ~0x0c; &= ~0x03; |=1;

JavaScriptで分からないコードがあるので教えてください。


■変数設定
var hoge = 0;


■変数格納
・キーを押した時の条件分岐
  ~なら hoge |= 1;
  または hoge |= 2;
  または hoge |= 3;
  または hoge |= 8;

・キーを離した時の条件分岐
  ~なら hoge &= ~0x0c;
  または hoge &= ~0x03;


■変数使用
・swithch文の条件分岐に利用
  (hoge&0x03)
  (hoge&0x0c)


■質問
・どういう意味でしょうか?
・文字コード?
・ビット演算?

Aベストアンサー

ビット演算してるわね

x = x + a

x += a
って書くことができるの

つまり
hoge |= 1

hoge = hoge | 1
のことね

~はNOTのこと

0x
はアスキーコードの16進数表記ねきっと

0x0c は改ページを意味していて
0x03 は文章の最後を意味している
と思われるわ
全文がないので推測だけど

Qstyle.visibility="hidden";

下記は画面にJavaScriptで碁盤の目に区切り
左上の一区切りの下地を表示するコードです
<html>
<head>
<title>タイル</title>
<script language="JavaScript">
<!--
var block = [0];
function setTile() {
num = 100;
w = Math.floor(document.body.clientWidth / num);
h = Math.floor(document.body.clientHeight/ num);
wTag = "";
n = 1;
for (j=0; j<=h; j++) {
for (i=0; i<=w; i++) {
wTag += "<span id='abc" + n +"' style='position:absolute;top:" + j*num + "px;left:" + i*num + "px;width:" + (num-1) + "px;height:" + (num-1) + "px;background-color:blue;'>" + "</span>";
block[n] ='abc' + n;
n++;
}
}
document.all["tile"].innerHTML = wTag;
document.body.style.visibility = "visible";
abc1.style.visibility="hidden";
}
// -->
</script>
</head>
<body onLoad="setTile()" style="visibility:hidden">
<div id="tile" style="position:absolute;top:0px;left:0px;"></div>
</body>
</html>
下地を表示する
abc1.style.visibility="hidden";
を下記に直すと動かなくなります
block[1].style.visibility="hidden";
よろしくお願いします。

下記は画面にJavaScriptで碁盤の目に区切り
左上の一区切りの下地を表示するコードです
<html>
<head>
<title>タイル</title>
<script language="JavaScript">
<!--
var block = [0];
function setTile() {
num = 100;
w = Math.floor(document.body.clientWidth / num);
h = Math.floor(document.body.clientHeight/ num);
wTag = "";
n = 1;
for (j=0; j<=h; j++) {
for (i=0; i<=w; i++) {
wTag += "<span id='abc" + n +"' style='position:absolute;top:" ...続きを読む

Aベストアンサー

#2です。やりたい事がちょっと分からないんですが、
↓こんな感じでしょうか?(順番にhidden化していく)

<html>
<head>
<title>タイル</title>
<script language="JavaScript">
<!--
var block = new Array();
var n = 0;
var a = 1;
function setTile() {
num = 100;
w = Math.floor(document.body.clientWidth / num);
h = Math.floor(document.body.clientHeight/ num);
wTag = "";
n = 1;
for (j=0; j<=h; j++) {
for (i=0; i<=w; i++) {
wTag += "<span id='abc" + n +"' style='position:absolute;top:" + j*num + "px;left:" + i*num + "px;width:" + (num-1) + "px;height:" + (num-1) + "px;background-color:blue;'>" + "</span>";
block[n] ='abc' + n;
n++;
}
}
document.all["tile"].innerHTML = wTag;
document.body.style.visibility = "visible";
setBlock();
}
function setBlock() {
if (a <= 20) {
eval(block[a] + ".style.visibility='hidden'");
a++;
setTimeout("setBlock()", 1000);
}
}
// -->
</script>
</head>
<body onLoad="setTile();" style="visibility:hidden">
<div id="tile" style="position:absolute;top:0px;left:0px;"></div>
</body>
</html>

#2です。やりたい事がちょっと分からないんですが、
↓こんな感じでしょうか?(順番にhidden化していく)

<html>
<head>
<title>タイル</title>
<script language="JavaScript">
<!--
var block = new Array();
var n = 0;
var a = 1;
function setTile() {
num = 100;
w = Math.floor(document.body.clientWidth / num);
h = Math.floor(document.body.clientHeight/ num);
wTag = "";
n = 1;
for (j=0; j<=h; j++) {
for (i=0; i<=w; i++) {
wTag += "<span id='abc" + n ...続きを読む

Q子ウィンドウ先でstyle.display

親ウィンドウから子ウィンドウを開く際、子ウィンドウ先でstyle.displayを使って答えを開くようにしたいと思っています。
下記のような構成で作ったのですが、子ウィンドウ先のdocumentを認識してくれない時もあるようで、答えが開く時もあれば、開かない時もあり対処を知りたいと思っています。

*** 親ウィンドウ ***

<script language="JavaScript">
<!--
function OpenAns () {
mywin = window.open("aaa.html", "x", "");
mywin.document.getElementById("id1").style.display="inline";
}
// -->
</script>

<a href="javascript:void(0)" onclick="OpenAns();">答え</a>


*** 子ウィンドウ ***
<body>
...
<span id="id1">答えです。</span>
...
</body>

親ウィンドウから子ウィンドウを開く際、子ウィンドウ先でstyle.displayを使って答えを開くようにしたいと思っています。
下記のような構成で作ったのですが、子ウィンドウ先のdocumentを認識してくれない時もあるようで、答えが開く時もあれば、開かない時もあり対処を知りたいと思っています。

*** 親ウィンドウ ***

<script language="JavaScript">
<!--
function OpenAns () {
mywin = window.open("aaa.html", "x", "");
mywin.document.getElementById("id1").style.display="inline"...続きを読む

Aベストアンサー

>Netscapeだけの事象に関し、想定される問題
全然読めないのではなく
やっぱり、読めたり読めなかったりするんですよね?
その場合は、やはり、読込が完了しているかどうかいうことではないかと思います。
部分的ではなくて、全部が読み込まれないといけないのかもしれないし・
*
子ウインドウが開いたままの時は問題なく実行できるのですよね。
始めて子ウィンドウを開くときには
answer.html?no=10
とかクエリーを渡して、
そのページ自体にonload時に、指定されたnoをinlineにするとかするようにしたら確実かもしれません。

Qdocument.getElementById( ).style.displayについて

「document.getElementById( ).style.display」を使って
スタイルシートを書き換え、画像とテキストの表示替えをしています。
Firefoxでは正常に動作するのですが、
IEでは「displayプロパティ」を取得できずに動作しません。
htmlは以下のとおりです。
どなたかお分かりになる方、教えていただけないでしょうか?
よろしくお願いします。

★javascriptの内容
function toggle(Aid,Bid,Cid,Did,Eid) {
document.getElementById(Aid).style.display = 'none';
document.getElementById(Bid).style.display = 'inherit';
document.getElementById(Cid).style.display = 'inherit';
document.getElementById(Did).style.display = 'none';
document.getElementById(Eid).style.display = 'none';
}
★スタイルシートの内容
#page {width: 910px;}
#ai{height: 33px;display:inherit;}
#kaki{height: 33px;display:none;}
#img_ai{margin: 0px;float: left;display:none;}
#img_kaki{margin: 0px;float: left;display:inherit;}

「document.getElementById( ).style.display」を使って
スタイルシートを書き換え、画像とテキストの表示替えをしています。
Firefoxでは正常に動作するのですが、
IEでは「displayプロパティ」を取得できずに動作しません。
htmlは以下のとおりです。
どなたかお分かりになる方、教えていただけないでしょうか?
よろしくお願いします。

★javascriptの内容
function toggle(Aid,Bid,Cid,Did,Eid) {
document.getElementById(Aid).style.display = 'none';
document.getElementById(Bid).style.displ...続きを読む

Aベストアンサー

いろいろ調べてみましたが、結論として
「inherit」をIE系(IE5.x、IE6)がサポートしていないのが原因の様です。

「displayプロパティの値を取得できませんでした。引数が不正です。」
のメッセージは、~~.style.displayのプロパティが参照できない事が原因ではなく、右辺値'inherit'が
受け付けられない事によって起こっています。

function toggle(Aid,Bid,Cid,Did,Eid) {
  document.getElementById(Aid).style.display = 'none';
  document.getElementById(Bid).style.display = 'inherit';  ※
  document.getElementById(Cid).style.display = 'inherit';
  document.getElementById(Did).style.display = 'none';
  document.getElementById(Eid).style.display = 'none';
}

現在は、※の箇所でエラーが発生します。
試みに、一行目の'none'を'xxxx'に変えると、そこでエラーが発生します。
これは、代入値が受付可能なものでないとエラーとなる事を示しています。

ちなみに以下のMSDNのライブラリでも、displayプロパティに対する設定値として'inherit'は
出てきません。
(http://msdn.microsoft.com/library/default.asp?url=/workshop/author/css/reference/css_ref_attributes_entry.asp)

一方で、FirefoxのCSS対応表
(http://f57.aaa.livedoor.jp/~motohiko/CSS/css2.1.html)
「'run-in', 'inline-block', 'inline-table' には非対応。」とありますが、'inherit'は対応している
ようです。

代替手段はありそうですが、質問者の方が'inherit'をどのような意図で使っているかわかりかねるので
その点はお答えかねます。

いろいろ調べてみましたが、結論として
「inherit」をIE系(IE5.x、IE6)がサポートしていないのが原因の様です。

「displayプロパティの値を取得できませんでした。引数が不正です。」
のメッセージは、~~.style.displayのプロパティが参照できない事が原因ではなく、右辺値'inherit'が
受け付けられない事によって起こっています。

function toggle(Aid,Bid,Cid,Did,Eid) {
  document.getElementById(Aid).style.display = 'none';
  document.getElementById(Bid).style.display = 'inherit'...続きを読む


このカテゴリの人気Q&Aランキング

おすすめ情報