要使用Tampermonkey hook修改通过ajax请求返回的数据,你可以使用Tampermonkey的GM_xmlhttpRequest函数来代替原始的XMLHttpRequest函数,并在其中添加钩子来修改数据。

以下是一个示例代码,它演示了如何使用Tampermonkey hook修改通过ajax请求返回的数据:

// ==UserScript==
// @name         Tampermonkey Hook Example
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Example of using Tampermonkey hook to modify ajax response data
// @author       Your Name
// @match        http://example.com/*
// @grant        GM_xmlhttpRequest
// ==/UserScript==

// 重写XMLHttpRequest对象
window.XMLHttpRequest = function() {
    var originalXHR = new originalXMLHttpRequest();

    // 重写open方法
    originalXHR.open = function(method, url, async, user, password) {
        // 添加监听器来捕获返回的数据
        this.addEventListener('readystatechange', function() {
            if (this.readyState === 4 && this.status === 200) {
                // 修改返回的数据
                var modifiedResponse = modifyResponse(this.responseText);
                // 调用原始的onreadystatechange方法并传入修改后的数据
                this.onreadystatechange(modifiedResponse);
            }
        });
        
        // 调用原始的open方法
        originalXHR.open.apply(this, arguments);
    };

    return originalXHR;
};

// 修改返回的数据的函数
function modifyResponse(response) {
    // 在这里可以对返回的数据进行修改
    var modifiedResponse = response.replace('original', 'modified');
    return modifiedResponse;
}

在上面的示例中,我们首先使用window.XMLHttpRequest重写了原始的XMLHttpRequest对象。然后,在重写的open方法中添加了一个监听器来捕获返回的数据。当请求状态为4(请求已完成)且状态码为200(成功)时,我们调用modifyResponse函数来修改返回的数据,并将修改后的数据传递给原始的onreadystatechange方法。

注意,需要将@grant GM_xmlhttpRequest添加到UserScript的元数据中,以允许使用GM_xmlhttpRequest函数。

请注意,此方法只适用于通过ajax请求返回的数据。如果该网站使用其他方法获取数据,例如WebSocket或fetch API,你可能需要使用其他方法来修改返回的数据。

如何使用Tampermonkey hook修改掉某条url通过ajax请求回来的数据

原文地址: https://www.cveoy.top/t/topic/i7NJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录