2012-02-14 25 views
6

私はこのことを知りました。 Stackoverflowにはすでにこれについての記事がいくつかありますが、私には答えがないようです。プロパティの値を取得できません__:オブジェクトがnullまたは未定義です

ここの他の記事と同様に、ChromeやFirefoxでも正常に機能しています。しかしIE 9,8,7、& 6でも同じエラーが出ます。私は互換モードに9を強制的にハックしようとしましたが、問題を解決しません。

私がIE 9でコンソールに入力すると、それが機能し、必要な機能が返ってきた(そのIDはWYSIWYGによって作成され、私を憎んではいない)ということは皮肉です。

はい、すべてが$(document).readyにラップされています。はい、タイプミスはありません。 IEがこれをあまりにも嫌う理由は分かりません。任意の助けをいただければ幸いです:)

コードは、単純な変数宣言です。

var ctlBone = window.microstrategy.bone(targetId + "_Ctl").styleHelper.ctlBone;

IEの右クリックし、そこにそのオブジェクトにアクセスしようとするのではなく、それを割り当てていることが表示されます。

+0

実際にエラーを発生させるコードを表示する可能性があります。 –

+0

エラーを発生させるコードは、単に変数宣言です。それは何もしていません。変数を代入するだけです。 "code"は 'var ctlBone = window.microstrategy.bone(targetId +" _Ctl ")です。styleHelper.ctlBone;'。 –

+0

'targetId'は正しいですか? –

答えて

6

最後に!

setTimeoutに問題がありました。明らかにIEの中では特にsetTimeout(function, miliseconds, param1, param2, param3);が壊れています。

SOURCE:http://arguments.callee.info/2008/11/10/passing-arguments-to-settimeout-and-setinterval/

+4

あなたの質問に基づいて 'setTimeout'を使っていると言うことはできませんでした。このため、コードサンプルを提供することが重要です。 – Sharon

+3

謝罪します。私のJavaScriptファイルは1000行以上あり、その2つの特定のビットは非常に離れています。以前のテーマに関する私の研究では、IEのブラウザ固有のものであり、setTimeoutではなくオブジェクトをどのように処理したかと考えていました。 –

2

私は$(document).ready(function(){関数内であなたのjqueryのコードをラップしていないお勧めします。 $(document).ready(function(){ IE 9 8 7を含むすべてのブラウザで正常に動作していると私はコメントした後、同じ問題に直面している。

+3

このタイプのものはコメントとして残した方が良いです。あなたが必要とする50の評判ポイントを得るのにあなたを長く取らないようにしてください。 –

1

ブラウザを互換モード(ツール、互換表示設定)に設定し、互換モードですべてのWebサイトを表示を選択してください。

関連する問題