Я написали Афиша для Facebook и вместе группируют подобные уведомления. Теперь, используя только статическую HTML-страницу со старыми уведомлениями, я работал, скрипт работает на 100%.Код запуска после завершения функции ИЛИ DIV Появляется
В этом случае: DIV, который содержит уведомления по умолчанию, не имеет уведомлений в нем, пока пользователь не нажмет кнопку уведомления. Facebook имеет встроенное событие onclick
, которое отображает меню DIV (уведомления) и использует AJAX для захвата уведомлений. Поскольку мой usercript работает только при запуске, он ничего не обнаруживает - он не влияет на страницу. Я попытался использовать событие .click(), но сразу же, когда вы нажимаете кнопку «Уведомления», он запускает мой код. Дело в том, что Facebook по-прежнему запускает запрос AJAX для уведомлений, а это значит, что для моего скрипта до сих пор нет уведомлений, что делает его неэффективным.
Я не хочу использовать общий наборTimeout, потому что я не хочу, чтобы пользователь должен был видеть уведомления раньше, а затем внезапно видеть их после. Есть ли способ контролировать DIV, поэтому после добавления уведомлений он запускается? Или, как только Facebook закончит свой запрос AJAX, он запустит мой код?
Я сам не изучил код, поэтому я не готов представить ответ, но я бы порекомендовал посмотреть, можете ли вы выяснить, где появляется объект XML HTTP Request (AJAX), и переопределять .onreadystatechange функция обратного вызова. Очевидно, что вы должны сохранить существующую функциональность через 'xmlobj.onreadystatechange = function() {onreadystatechange(); your_new_functionality();} 'Очевидно, что это будет бесконечно сложнее, потому что код Facebook, вероятно, будет запутан/сжат, но некоторая js-отладка локтя-консистентной смазки должна быть способна уговорить объект xml. –
@Steven - это будет тесно связать решение с текущей реализацией Facebook. Любые изменения на их стороне повлияют на приложение. 'setInterval' кажется более разумным, до [DOM Mutation events] (http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/events.html#Events -eventgroupings-mutationevents) становятся обычным явлением. Кроме того, см. Http://stackoverflow.com/questions/1091661/detect-div-content-changes-with-jquery – Anurag