В javascript, как я могу вызвать функцию каждый раз, когда кто-то обновляет страницу? - PullRequest
2 голосов
/ 02 ноября 2010

Я хочу запускать функцию javascript каждый раз, когда запускается другой javascript на странице. Это необходимо для последующей обработки динамически сгенерированного контента. Я не могу просто выполнить постобработку после загрузки страницы, потому что мне нужно применить свою постобработку к контенту, который генерируется JavaScript, который загружает другую страницу.

В качестве альтернативы, можно ли зарегистрировать функцию обратного вызова, которая будет вызываться, когда щелчок выполняется в любой части страницы и после обработки всех других событий onclick?

Я делаю это для сценария greasemonkey, чтобы сделать внутреннюю веб-страницу более удобной.

Ответы [ 3 ]

1 голос
/ 03 ноября 2010

Вы можете использовать одно из событий DOMNodeInserted или DOMSubtreeModified, чтобы определить, что меняется на странице.

И вы можете прикрепить событие onclick к окну.
Кроме того, вы можете прикрепить его только к элементам со встроенным атрибутом onclick.

1 голос
/ 02 ноября 2010

Один из (немногих) вариантов решения этой проблемы - использовать setInterval(), который опрашивает изменения документа ... Нет сквозных кросс-браузерных событий, которые бы информировали вас об изменениях документа.

Если вы ищете изменения / элементы, добавленные к <div>, например, вы можете использовать .innerHTML этого div и сравнить длину и т. Д. Для поиска новых элементов.

0 голосов
/ 02 ноября 2010

Если вы используете jQuery, вы можете запустить свою функцию один раз, когда DOM будет готов, а затем связать ее с событием ajaxComplete, чтобы он запускался каждый раз, когда скрипт загружает данные через сервер AJAX с сервера.

...