2012-06-18 2 views
0

Взгляните на this site. Когда вы прокручиваете вниз, он автоматически загружает немного больше страницы. Скажем, что у меня есть событие, которое выполняется на document.load. Есть ли способ заставить это сделать это снова, когда вы прокрутите вниз, и появится больше вещей?Javascript: Как проверить, было ли что-то добавлено в DOM?

Стоит упомянуть, что я пытаюсь разработать способ сортировки всех подобных экземпляров, а не только определенного сайта, о котором я упоминал, который вполне может иметь что-то защелкивать, когда он делает бесконечную прокрутку.

+2

Изучите характер события «прокрутки». – Pointy

+2

Обычно вы (или ваш скрипт) - это тот, который добавляет элементы в DOM, поэтому вместо добавления другого события, которое можно поймать, когда это произойдет, вы можете просто вызвать свои функции при добавлении элементов. – GolezTrol

+0

Итак, вы ищете какое-то событие для прослушивания всякий раз, когда DOM добавляется? –

ответ

1

Устаревшие DOM3 Mutation Events, например DOMSubtreeModified, которые срабатывают при возникновении определенного события мутации. По соображениям производительности и совместимости MDN категорически отвергает их использование, но они существуют. Я также считаю, что они не предоставляют информацию о том, что произошло от вида от мутации или любого вида сравнения до/после сравнения.

Существует черновик W3C для DOM4 Mutation Observers, который может быть реализован в некоторых браузерах в настоящее время. Я знаю, что по крайней мере реализована в 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 
    //... 
}); 

Там в полный список mutation properties в проекте (прокрутите вниз до зеленой коробки).

0

Поведение, которое вы описываете, часто упоминается как «infinite scrolling».

EDIT: Мой ответ выше не отвечает на ваш вопрос.

Ближайший я могу думать по-настоящему универсальный способ обработки этого, даже если это не ваш код, добавление элементов в DOM, является использование DOM Level 3 API Mutation events, но они в настоящее время устарели и не должен использоваться ,

Продолжается работа над предложением для mutation observers в DOM Level 4, но они еще не стандартизованы. Тем не менее, take a look at this article для примера реализации.

+0

Приветствия для нисходящего! Объяснить? –

+1

Я не могу говорить для лидера с полномочиями, конечно, но потенциальные причины включают в себя, что вы просто разместили ссылку без разработки здесь (примеры кода и т. Д.) И что ссылка связана с плагином jQuery, но вопрос не помечен jQuery. – Pointy

+0

Да, правда, на самом деле я думаю, что вопрос о том, как выполнять произвольный код в модификации DOM, а не о том, как эффект прокрутки достигается сам по себе, поэтому я был не прав. :) –

Смежные вопросы