2011-10-31 14 views
0

新しく作成されたdivをbody要素onloadに追加するスクリプトがあります。私は、アプリケーション全体でそのdivへの参照を保持する必要があるので、私はそれを私の主要なグローバルオブジェクトに保存します。オブジェクトプロパティとして作成された要素を追加する

var oMyObj = {}; 

window.onload = function() { 
    oMyObj.eDiv = document.createElement("div"); 
    document.getElementsByTagName("body")[0].appendChild(oMyObj.eDiv); 
}; 

私は特にあなたが同意するとは思わない。とにかく、私はIE9でテストを開始するまで、まったく問題なく動作しました。突然、「オブジェクトの呼び出しが無効です」というエラーメッセージが表示されます(私は現在日本で働いています)。エラーメッセージの正確な英語版が何であるかわかりません。

とにかく、私は、 RealPlayer DivXプラグインのために(http://d.hatena.ne.jp/wang-zhi/20110503/1304361114 - 申し訳ありませんが、日本語でも)検索しました。プラグインを無効にした後、正常に動作しました。また、メタタグを使用してIE9をIE7として実行すると、正常に動作します。だからそれは大きな問題ではない。しかし、私がIE9でIE9として動作するようにしようとしていることを「正しい」方法があるかどうかを知りたいと思います。私が今やっていることは、私がやっていることではないということだけを仮定することができます。

アイデア?

+0

私はそれに間違いは見られません。 – Pointy

+0

oMyObj.eDivがonloadの前に参照されることはありますか?エラーが発生したときのoMyObjの値は何ですか?つまり、oMyObjまたはoMyObj.eDivはnullですか? –

+0

'var oMyObj'と' oMyObj'を 'window.oMyObj'に変更しても結果は同じですか?そうすれば、実際にグローバルになっているかどうかを確認できます。 – bennedich

答えて

0

さて、私はそれがDivX(RealPlayerではなく、なぜ私はそれらを混ぜたのか分かりません)という問題を引き起こすプラグインであることを確認しました。プラグインはappendChildを含むコアDOM機能のいくつかを上書きしますが、それは私には間違っています。 DivX acknowledgedのバグは次のアップデートで修正されるようです。さて、私は思います。

関連する問題