2012-03-10 3 views
0

最近IE(6-8)が私にエラーを投げかけているという不思議な問題に遭遇しました。これが問題なのかどうかはわかりませんが、私はそうだと思います。

jQuery included websiteにF12開発者ツールを開き

$(window).load(function(){ 
    alert("Wont able to see me"); 
}); 

を入力して、エラーがポップアップします:

をプロパティ 『スライス』の値を取得する」できません:オブジェクトがnullですか」未定義の

は、私は何も悪い、または何かをしたんです?

+0

jqueryのどのバージョンですか? –

+0

私はそのエラーを取得しません。しかし、ロード・ハンドラは、すでにロード・イベントが発生しているので実行されません(ただし、ページがまだロードされている間は、コンソールからコードを実行することはできません)。 –

答えて

0

IE10やIE9と最新のjQuery(1.7.1)は私のためにこのようなエラーを生成しません。

注釈として、 domの準備が整ったときに何かを実行したい場合は、 この方法をお試しください。

$(function(){ 
    alert("Wont able to see me"); 
}); 

これは、domreadyイベントに関数を追加するための標準的な規約と考えています。

参考:私は最近$(window).load()を認識していないIEのための回避策たjQuery Documentation

+7

'$(window).load()'と '$(function(){}) 'は同じものではありません。ウィンドウの読み込み前にドキュメント対応の準備ができます。 [詳細な説明](http://4loc.wordpress.com/2009/04/28/documentready-vs-windowload/) –

+4

'$(window).load(fm)'は '$(fn)と同じものではありません。 ) '。最初のページは、すべてのページリソースがロードされる(イメージを含む)まで待機します。 2番目のメソッドは、DOMがロードされるまで待機します。 – jfriend00

+0

申し訳ありませんが、違いは分かっていますが、window.onloadには何も付いていません。長い間、私の頭脳は直接domReadyに移りました:)。あたかも私が最初にそれを台無しにしなかったかのように答えを編集しました。 –

6

...それは対照的に、すべての要素がロードされた後に実行されるように、これは$(function(){})より少し異なっている

window.onload = function() { 
    alert("See me, hear me, touch me!"); 
}; 

DOMの準備が完了した時点までです。

私は最近、別のプロジェクトでこれを実装し、それが見事に働きました。

関連する問題