IEでCookieのJavaScriptで「nullまたはオブジェクトではありません」

検索語句、「IE」「cookie」「javascript」「nullまたはオブジェクトではありません」で来られ方へのヒント。
「nullまたはオブジェクトではありません」をどうやって回避するか。

自分がハマッタ現象は、

カートのプログラムを使っていて、
フォームへの入力の手間を省くため、
JavaScriptでCookieを設定しておいて、
読みだそうとしたら、
IE6環境でアラート「nullまたはオブジェクトではありません」が出てしまう。

具体的なJavaScriptのコードは書きませんが、
アラートが出る理由の一つは、
読み出したクッキーの値を代入するための

・フォーム(<form></form>)がそもそも存在しない
・フォームのオブジェクト名(name=”hogehoge”)が違っている
・フォームのエレメント(たとえば、<input name=”hoge” type=”text” size=”10″ value=”">)がそもそも存在しない
・フォームのエレメント名(name=”hoge”)が違う

ので、代入ができなくなってしまってアラート(エラー)が出ると思われます。
まず、上記をチェックしてみて、解決をはかってみます。

これで解決できない場合、フォーム名やエレメント名が違ったら、読み出したクッキーの値を代入しない、として回避する方法もあります。

たとえば、

function hogehoge(){
・・・・・・・
・・・・・・・
}

ã‚’

function hogehoge(){
if (document.hogera.hogeren){
・・・・・・・
・・・・・・・
}
}

として「エレメントがあれば代入する」にしておけば回避できます。

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>