Отследить AJAX событие из расширения Chrome
Как отследить AJAX-перезагрузку элемента из расширения Google Chrome. Доступа к исходникам самого ресурса нет. Обработчик события элементарно меняет пару CSS параметров. Нужно чтобы при перезагрузке элемента скрипт из расширения автоматом применялся бы к этому элементу. Body Onload само собой не подходит так как требуется перезагрузка всей страницы. Пока в скрипте стоит только
document.addEventListener('click', function(){...} Приходится после каждого субмита щелкать по странице в любом месте, чтобы расширение сработало, что ужасно не практично(( В JavaScript, а уж тем более в Ajax и всяких jQuery новичок. Штурмовал гугл разными запросами которые только мог придумать, но видимо в упор не вижу элементарщины:( |
zeller,
Разместите вызов нужного вам скрипта туда, где получается ответ на ajax-запрос ( в onreadystatechange, если ajax на js, в success - если jQuery ) |
chrome.webRequest.onCompleted.addListener( function(details) { //твой code }, {urls: ["<all_urls>"],types: ["xmlhttprequest"]},["responseHeaders"]); если url известен то впишите его в типа urls: ["http://example.com/*"] p.s это background.js |
Цитата:
Цитата:
|
Не хочет работать, видимо что то делаю не так. background кстати изначально не был указан в manifest.json. Добавил вроде как положено
"background": { "persistent": true, "scripts": ["background.js"] }, |
zeller,
Небольшое уточнение: Ajax-перезагрузка элемента запускается из расширения? Код ajax-запроса тоже в расширении? |
Нет ajax-перезагрузка впаяна в исходники сайта. Из расширения хотелось бы отследить. Спустя столько времени так и не нашел решения более изящного, чем какой нибудь setInterval. Функция выполняется просто каждую секунду. Браузер не повиснет, конечно, но изнутри съедает чувство вселенского презрения к себе за эту корявость:)
|
Часовой пояс GMT +3, время: 13:12. |