これは、私が Windows XP と Windows 2003 で JavaScript と IE8 を使用して直面している興味深い問題です。ページ上にオブジェクトを作成し、そのオブジェクトに関する情報 (たとえば、そのバージョン) を取得します。バージョンを取得しようとすると、次のコードを実行しています。
var myObject = document.getElementById(objectId);
console.log(myObject.version);
興味深いのは、このコードが Windows XP および 2003 上の IE8 を除くすべてのブラウザーで機能することです。デバッグを行ったところ、興味深いことがわかりました。
myObject はnull ではありませんが、myObject.version は未定義です。そこで、間にアラートを追加したので、コードは次のようになりました。
var myObject = document.getElementById(objectId);
alert(myObject.version);
console.log(myObject.version);
アラートは「未定義」になりますが、console.log は実際のバージョンになります。この何かのアラートの前にアラートを追加すると (たとえば、alert("something"))、2 番目のアラートには実際のバージョンが含まれます。これはタイミングの問題だと思います (何らかの理由で、オブジェクトに保存されているデータを提供できるようにするために、オブジェクトがいつか必要になるのでしょうか?) しかし、これがどのようなタイミングの問題なのか、どのようにアプローチすればよいのかわかりません。
長い説明で申し訳ありませんが、助けていただければ幸いです。