Изменить элементы сразу после их отображения (не после полной загрузки страницы) в скрипте greasemonkey?
я имеюэтот скрипт, Он применяется на страницах фильма RottenTomatoes и изменяет 3 элемента
(1 видимый текст и 2 текста внутри подсказок).
В настоящее время (из-за greasemonkey's@run-at document-end
) это изменяет элементытолько после полной загрузки страницы.
Кроме того, во многих случаях страницы RottenTomates задерживают загрузку, до 20 секунд (!),
так что это дополнительная задержка в моем сценарии.
Это вызывает две вещи:
задержка отображения измененного видимого текста, и это,если навести указатель мыши на любую из всплывающих подсказок до полной загрузки страницы, то после загрузки она, вероятно, будет содержать только исходный текст без моего добавления или только с моим добавлением.Чтобы увидеть это, установитескрипт а затем посетитьэто типичная целевая страница.
Страницы RottenTomatoes загружают различный контент через XHR (как я видел в Firefox Netowork Monitor),
но 3 элемента (которые я хочу изменить) отображаютсянемедленно, не когда страница полностью загружена.
Я пытался использоватьMutationObserver
следить за тем, чтобы конкретное текстовое значение появилось на экране, но, похоже, оно не работает. Его структура такова:
var target = selector_for_element_containing_text ; // the selector is: document.querySelector('.audience-info > div:nth-child(1)');
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
modifyElements();
});
});
var config = { attributes: true, childList: true, characterData: true, subtree: true };
observer.observe(target, config);
function modifyElements(){ // This is just the current code of my script
// modify element 1
// modify element 2
// modify element 3
}
Как я могу изменить элементы сразу после их отображения?