захватить запросы xmlhttp страниц с помощью пользовательского скрипта

У меня есть пользовательский сценарий (для chrome и FF), который добавляет значительную функциональность на страницу, но недавно был сломан, потому что разработчики добавили на страницу некоторый AJAX. Я хотел бы изменить сценарий для прослушивания запросов xmlhttp страниц, чтобы я мог динамически обновлять добавленное содержимое на основе JSON-формата responseText , который получает страница.

Поиск обнаружил множество функций, которые ДОЛЖНЫ работать и работают при запуске в консоли. Однако они ничего не делают из контекста пользовательского скрипта.

(function(open) {

    XMLHttpRequest.prototype.open = function(method, url, async, user, pass) {

        this.addEventListener("readystatechange", function() {
            console.log(this.readyState);
        }, false);

        open.call(this, method, url, async, user, pass);
    };

})(XMLHttpRequest.prototype.open);

От: Как я могу перехватить XMLHttpRequests из сценария Greasemonkey?

Это отлично работает в консоли, я могу изменить this.readyState на this.responseText и он отлично работает (хотя в сценарии мне понадобится он, чтобы превратить данные JSON в объект, а затем позволить мне манипулировать им в пользовательском сценарии. А не просто писать в консоль). Однако, если я вставлю его в пользовательский скрипт, ничего не произойдет. Запросы xmlhttp на странице не обнаруживаются обработчиком событий в пользовательском скрипте.

Страница, выполняющая запрос, использует функцию jquery $ .get (), если это может иметь к ней какое-либо отношение. Хотя я не думаю, что это так.

Я не могу представить, что не существует способа, похоже, что любой пользовательский скрипт, работающий на странице AJAX, захочет получить эту возможность.

7
задан Community 23 May 2017 в 10:26
поделиться