Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Отследить AJAX событие из расширения Chrome (https://javascript.ru/forum/events/62626-otsledit-ajax-sobytie-iz-rasshireniya-chrome.html)

zeller 21.04.2016 03:55

Отследить AJAX событие из расширения Chrome
 
Как отследить AJAX-перезагрузку элемента из расширения Google Chrome. Доступа к исходникам самого ресурса нет. Обработчик события элементарно меняет пару CSS параметров. Нужно чтобы при перезагрузке элемента скрипт из расширения автоматом применялся бы к этому элементу. Body Onload само собой не подходит так как требуется перезагрузка всей страницы. Пока в скрипте стоит только
document.addEventListener('click', function(){...}

Приходится после каждого субмита щелкать по странице в любом месте, чтобы расширение сработало, что ужасно не практично((
В JavaScript, а уж тем более в Ajax и всяких jQuery новичок.
Штурмовал гугл разными запросами которые только мог придумать, но видимо в упор не вижу элементарщины:(

Dilettante_Pro 21.04.2016 10:51

zeller,
Разместите вызов нужного вам скрипта туда, где получается ответ на ajax-запрос
( в onreadystatechange, если ajax на js, в success - если jQuery )

Madzal 21.04.2016 18:15

chrome.webRequest.onCompleted.addListener(
		function(details) {
		//твой code
		},
		{urls: ["<all_urls>"],types: ["xmlhttprequest"]},["responseHeaders"]);

если url известен то впишите его в типа urls: ["http://example.com/*"]
p.s это background.js

zeller 21.04.2016 20:29

Цитата:

Сообщение от Dilettante_Pro (Сообщение 414609)
zeller,
Разместите вызов нужного вам скрипта туда, где получается ответ на ajax-запрос

Я извиняюсь, а где получается ответ на ajax запрос? К исходникам доступа нет опять же. Я просто нуб конкретный.
Цитата:

Сообщение от Dilettante_Pro (Сообщение 414609)
zeller,
( в onreadystatechange, если ajax на js, в success - если jQuery )

вроде как jquery используется

zeller 21.04.2016 20:32

Не хочет работать, видимо что то делаю не так. background кстати изначально не был указан в manifest.json. Добавил вроде как положено
"background": {
"persistent": true,
"scripts": ["background.js"]
},

Dilettante_Pro 22.04.2016 13:28

zeller,
Небольшое уточнение: Ajax-перезагрузка элемента запускается из расширения? Код ajax-запроса тоже в расширении?

zeller 25.08.2016 03:32

Нет ajax-перезагрузка впаяна в исходники сайта. Из расширения хотелось бы отследить. Спустя столько времени так и не нашел решения более изящного, чем какой нибудь setInterval. Функция выполняется просто каждую секунду. Браузер не повиснет, конечно, но изнутри съедает чувство вселенского презрения к себе за эту корявость:)


Часовой пояс GMT +3, время: 13:12.