ブラウザの違いによる JavaScript の getElementById の動作

最初に断っておくと、私は JavaScript が嫌いである。
厳密には、JavaScript を自分で記述するのが嫌いである。

開発において、想定しづらいほど多い複数の環境に対して動作を保証するのは困難だから、と言うのが正直なところ。

だから、できる限りカプセル化したライブラリを用い、なるべく自分で記述はしないようにとしています。
これも一つの品質に対する考えだと思うのです。

*

さて、そうは言ってもテキストボックスのクリアぐらいは書くのもしょうがないと思っていたら、くだらないミスをしてしまったので忘れないように自戒を含めてメモ。

事は、getElementById の動作が、IE では id 属性を指定していなくても、name 属性が一致すればオブジェクトを取り出せてしまったことが始まりです。

つまり、IE では動作していたスクリプトが、Firefox などでは動かないと言われ、気づいたのです。

ここには2つ問題があって、一つは今の id 属性を指定していなければオブジェクトを取得できないと言うこと。
もう一つは、document オブジェクトの指定を省いた場合、IE はそれを補完する機能が働くこと、でした。

このため、name 属性のみを指定した要素を getElementById() のみで取得した場合、IE は動作するが Firefox などでは動作しないと言う先の問題が発生したのでした。

*

きちんと考えて、ドキュメントを読めば当たり前の事だったのですが、まぁミスしてしまいました。はぁ。

え?Webサイトのバックアップ、してないの!?

いざという時には復旧までしてくれる
『ワードプレス外部バックアップサービス』

■3つの特長
・自分でやらなくて良い
・いざという時の復旧付き
・外部サーバーにバックアップ

コメントを残す