formはdocumentの下である
いやあ、苦しみました
下のコードは簡略化してあるが、ラジオボタンを押すと
単にテキストボックスに「こんにちは」と入れるだけのスクリプトである。
これをファイルにして読み込ませると、IEでもFireFoxでも正しく表示する。
<script type="text/javascript">
<!--
function inputText(){
form1.text1.value="今日は";
}
// -->
</script>
<form name="form1">
<input type="radio" name="radio0" onClick="inputText()">今日は<br>
<input type="text" name="text1"><br>
</form>
ところがこれをブログに張り付けると、IEでは正しく表示するがFirefoxでは
『form1 is not defined』というエラーになって正しく表示しないのだ。
このブログは
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
というDOCTYPE宣言を自動的にブログの先頭に張り付ける。
どうもこれがいたずらしているのであると見当を付けたのだが、原因がわからない。
もちろんブログで自動的に挿入される文字を削除することは出来ない。
ネットで調べるとformのnameの代わりにIDを付けてgetElementByIdでformを 取得したらどうかと書いてあった。
確かにそうすると上手くいくしかし釈然としない、それではなぜIEでは正常に 動作するのか?
ここがわからない。
そこで初心に帰って調べることにした。
頼りになるのはこの本である。

そしてformの項を調べたら一発で解決した。
下の表を見てほしい、formはdocumentクラスの下である。
したがって
form1.text1.value は
正しくは
document.form1.text1.value と書かなくてはならない。
こうすると正しく動作する。
IEはform1と書いてもdocument.form1と解釈して、Firefoxは厳密に解釈 したのだ。
技術者は皮相的な結果だけを追い求めるのではなく、原因をしっかり 追及すべきなのである。
下のコードは簡略化してあるが、ラジオボタンを押すと
単にテキストボックスに「こんにちは」と入れるだけのスクリプトである。
これをファイルにして読み込ませると、IEでもFireFoxでも正しく表示する。
<script type="text/javascript">
<!--
function inputText(){
form1.text1.value="今日は";
}
// -->
</script>
<form name="form1">
<input type="radio" name="radio0" onClick="inputText()">今日は<br>
<input type="text" name="text1"><br>
</form>
ところがこれをブログに張り付けると、IEでは正しく表示するがFirefoxでは
『form1 is not defined』というエラーになって正しく表示しないのだ。
このブログは
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
というDOCTYPE宣言を自動的にブログの先頭に張り付ける。
どうもこれがいたずらしているのであると見当を付けたのだが、原因がわからない。
もちろんブログで自動的に挿入される文字を削除することは出来ない。
ネットで調べるとformのnameの代わりにIDを付けてgetElementByIdでformを 取得したらどうかと書いてあった。
確かにそうすると上手くいくしかし釈然としない、それではなぜIEでは正常に 動作するのか?
ここがわからない。
そこで初心に帰って調べることにした。
頼りになるのはこの本である。

そしてformの項を調べたら一発で解決した。
下の表を見てほしい、formはdocumentクラスの下である。

したがって
form1.text1.value は
正しくは
document.form1.text1.value と書かなくてはならない。
こうすると正しく動作する。
IEはform1と書いてもdocument.form1と解釈して、Firefoxは厳密に解釈 したのだ。
技術者は皮相的な結果だけを追い求めるのではなく、原因をしっかり 追及すべきなのである。
2010年05月14日 Posted by igoten at 23:50 │Comments(3) │JavaScript 備忘録
風の葬送
私はどうも物を貯め込む習性がある。
貯め込み過ぎてどうしようもなくなると仕方なく片付ける。
ブログも同じでちょっと試しに書いた記事や、最後まで書いたのだが アップロードの時に気乗りがしなくなり止めてしまった物が結構溜まって、 先日それをエイヤーと整理した。
この記事はちょっと暗いのでUPしなかったのだが、今我が家は朝から ツバメ君が騒ぎまわっていて、結構賑にぎやかなので気分が変わりました。
2ヶ月位前に書いたものですが。
日曜日の午後、家の横の畑でアスパラに肥料を施していると、 家の周りにいたヒヨドリが一斉にキーキー甲高い声で 鳴き出した。
私は仕事の手を休めて家の方を振り返ったが、何も変わった ことが無かったのでそのまま仕事を続けた。
仕事が終わって家に入ろうとすると、玄関脇の砂利の上にヒヨドリが 一羽落ちていた。
私は少し驚いてしばらくそのヒヨドリを見ていたが、横たわっているヒヨドリに 動き出す気配が無いので仕方なくそれを拾い上げた。
大きそうに見えたヒヨドリも持ってみるとまるで空気を拾い上げた様に軽かった。
私の手の中のヒヨドリにはまだほんのり温かみが残っていたが、首は下に垂れて眼が半開きなり 明らかに死んでいた。
私はしばらくの間そのヒヨドリを持ったまま、その辺をうろうろしていたが、やがて園芸用の 黄色い柄のシャベルで、畑の隅に、ヒヨドリが丁度入る位の小さな穴を掘って、 その中に死んだヒヨドリを置き、上から土を掛け短い竹の棒を立てた。
土から生まれたものは土に帰るのである。
午前中は少し青空が見えていた空も、もうすっかり曇ってしまって、細い風が微かな音を たてて吹いていた。
私は庭の餌場に行って、残っていた皿の上のパンを残らず餌場の周りの土の上に 撒いた。
そして小屋の中からリンゴを幾つか持ち出して、それを平らに切って、餌場に乗り切れないほど 置いた。
やがて2羽のムクドリと数羽のヒヨドリが来てその餌を食べ始めた。
貯め込み過ぎてどうしようもなくなると仕方なく片付ける。
ブログも同じでちょっと試しに書いた記事や、最後まで書いたのだが アップロードの時に気乗りがしなくなり止めてしまった物が結構溜まって、 先日それをエイヤーと整理した。
この記事はちょっと暗いのでUPしなかったのだが、今我が家は朝から ツバメ君が騒ぎまわっていて、結構賑にぎやかなので気分が変わりました。
2ヶ月位前に書いたものですが。
日曜日の午後、家の横の畑でアスパラに肥料を施していると、 家の周りにいたヒヨドリが一斉にキーキー甲高い声で 鳴き出した。
私は仕事の手を休めて家の方を振り返ったが、何も変わった ことが無かったのでそのまま仕事を続けた。
仕事が終わって家に入ろうとすると、玄関脇の砂利の上にヒヨドリが 一羽落ちていた。
私は少し驚いてしばらくそのヒヨドリを見ていたが、横たわっているヒヨドリに 動き出す気配が無いので仕方なくそれを拾い上げた。
大きそうに見えたヒヨドリも持ってみるとまるで空気を拾い上げた様に軽かった。
私の手の中のヒヨドリにはまだほんのり温かみが残っていたが、首は下に垂れて眼が半開きなり 明らかに死んでいた。
私はしばらくの間そのヒヨドリを持ったまま、その辺をうろうろしていたが、やがて園芸用の 黄色い柄のシャベルで、畑の隅に、ヒヨドリが丁度入る位の小さな穴を掘って、 その中に死んだヒヨドリを置き、上から土を掛け短い竹の棒を立てた。
土から生まれたものは土に帰るのである。
午前中は少し青空が見えていた空も、もうすっかり曇ってしまって、細い風が微かな音を たてて吹いていた。

私は庭の餌場に行って、残っていた皿の上のパンを残らず餌場の周りの土の上に 撒いた。
そして小屋の中からリンゴを幾つか持ち出して、それを平らに切って、餌場に乗り切れないほど 置いた。
やがて2羽のムクドリと数羽のヒヨドリが来てその餌を食べ始めた。