0

このサイトを見てください。下にスクロールすると、ページのもう少しが自動的に読み込まれます。document.loadで実行されるイベントがあるとします。下にスクロールしてさらに多くのものが表示されたときに、それを再度実行する方法はありますか?

私が言及した特定のサイトだけでなく、このようなすべてのインスタンスをキャッチする方法を設計しようとしていることは言及する価値があります。

4

2 に答える 2

1

のような非推奨のDOM3 Mutation EventsDOMSubtreeModifiedがあり、特定の Mutation イベントが発生するたびに発生します。パフォーマンスと互換性の理由から、MDN はそれらの使用を強くお勧めしませんが、それらは存在します。また、どのような突然変異が発生したか、前後の比較に関する情報も提供していないと思います。

DOM4 Mutation Observersの W3C ドラフトがあり、現在一部のブラウザーに実装されている可能性があります。少なくともChromeに実装されていることは知っています。これはWebKitMutationObserver次のように使用します:

var observer = new WebKitMutationObserver(function(mutations, observer) {
    // fired when a mutation occurs
    console.log(mutations, observer);
    // ...
});

// define what element should be observed
// and what types of mutations trigger the callback
observer.observe(document, {
  subtree: true,
  attributes: true
  //...
});

ドラフトにはミューテーション プロパティの完全なリストがあります (緑色のボックスまでスクロールします)。

于 2012-06-18T14:07:43.750 に答える
0

あなたが説明している動作は、「無限スクロール」と呼ばれることがよくあります。

編集:上記の私の答えは、あなたの質問に実際には答えていません。

DOM に要素を追加するのがコードではない場合でも、これを処理する真に一般的な方法として私が考えることができる最も近い方法は、DOM Level 3 API Mutation eventsを使用することですが、現在は非推奨であり、使用しないでください。 .

DOM レベル 4 でミューテーション オブザーバーを提案する作業が進行中ですが、これらはまだ標準化されていません。ただし、実装例については、この記事をご覧ください。

于 2012-06-18T13:45:03.510 に答える