7

Chrome プラグインを作成し、次のような「DOM Ready イベント」をリッスンしています。

$(document).ready(function () {
    //here I select some elements and remove them.
});

必要な要素が実際に存在する場合でも、取得できないことがあります。しかし、ページが読み込まれると、開発者ツールを開いてコンソールで同じコードを実行すると、再び機能します。

DOM の準備ができているのに要素を取得できない理由がわかりません。自分が書いたコードは正しいのです。

4

2 に答える 2

10

探している要素は、DOM の準備が整った後に追加されるようです。

document.ready を以下の関数に置き換えてみてください。

$(window).load(function() {
 // executes when complete page is fully loaded, including all frames, objects and images
 alert("window is loaded");
});

jQuery には、コードを実行してイベント ハンドラーをアタッチするための 2 つの強力なメソッド、$(document).ready と $(window).load が用意されています。すべてのグラフィックスがまだロードされていなくても、HTML ドキュメントがロードされ、DOM の準備が整った時点で、ドキュメントの準備完了イベントがすでに実行されます。ウィンドウが読み込まれる前に特定の要素のイベントをフックする場合は、$(document).ready が適切な場所です。

ウィンドウ読み込みイベントは、すべてのフレーム、オブジェクト、および画像を含む完全なページが完全に読み込まれる少し後に実行されます。したがって、画像やその他のページ コンテンツに関係する関数は、ウィンドウの load イベントまたは content タグ自体に配置する必要があります。

http://4loc.wordpress.com/2009/04/28/documentready-vs-windowload/から 取得

于 2012-07-23T11:04:37.317 に答える
4

DOMが実際に準備ができていて、要素が後で他のコードによって追加されていない場合、それらは検出されるためにそこにあります。それらが見つからない場合は、使用しているセレクターに問題があるか、(マークアップではなく)他のコードによって追加されていることを示しています。

于 2012-07-22T14:16:17.403 に答える