ieとffのjsの違い


今日はコード作成中に問題コードがありました.

info = document.getElementById('info').value;
    if(info == 'true')
        setCookie('msg','true',31,'/');
    else
        setCookie('msg','false',31,'/');
バックデバッグ時にこのコードはffで正常に機能しますが、ieでは無効になります.
そこでコードを再デバッグして、最後にieのcookieファイルがまったく書かれていないことを発見しました.検査を経て、プログラムは最初の文で実行エラーが発生しました.よく考えてみると、元素idはieとffの中に細かい違いがあると思います.コードを改めて

var infoValue = document.getElementById('info').value;
    if(infoValue == 'true')
        setCookie('msg','true',31,'/');
    else
        setCookie('msg','false',31,'/');
そして再デバッグして、これはieとffブラウザで正常に動作するようになりました.
最後にまとめます.IEでHTMLオブジェクトのIDは、documentの下位オブジェクト変数名として直接使用できます.Firefoxではできません.Firefoxでは、HTMLオブジェクトIDと同じ変数名が使用できます.IEではできません
解決方法:document.getElemenntByIdを使ってdocument.idNameの代わりにします.HTMLオブジェクトIDと同じ変数名を取らないほうがいいです.エラーを減らすために.変数を宣言する時は、一律にvarを加え、曖昧さを避ける.