检索和修改XMLHttpRequest的内容

| 我正在为Firefox,Safari,Chrome浏览器开发插件,它将拦截页面上的数据,对正则表达式运行它,然后如果匹配则将其重新格式化。我使用以下方法处理页面加载:
var meth = {
  replaceInElement : function(element, find, replace) {
        // iterate over child nodes and replace
  },
  run : function(evt){
    // doc is the document that triggered \"run\" event
    if (!(evt.target.nodeName === \"#document\")) { return; }
    var doc = evt.target; // document that triggered \"onload\" event
    if (!(doc instanceof HTMLDocument)) { return; }
    if (!doc.location) { return; }

    // perform substitutions on the loaded document
    var find = /regex/gi

    meth.replaceInElement(doc.body, find, function(match) {
        var new_content;
        //do stuff
        return new_content;
    });

    //content.document.addEventListener(\'DOMNodeInserted\', ezcall.node_inserted, false);
  }
}

window.addEventListener(\"load\", meth.run, false);
这适用于静态页面,但是对于使用ajax调用的任何操作,它都会失败。我找不到合适的侦听器,也无法弄清楚如何拦截XMLHttpRequest。 我已经尝试过XMLHttpRequest的类似事件侦听器,但是没有运气。
XMLHttpRequest.addEventListener(\'load\', meth.run, false);
我想拦截请求并修改内容。或者,找到已更新的目标,并在ajax调用完成后对其进行扫描。 更新: 我将接受一个回答说它无法完成,但是我将需要一些支持数据以说明为什么无法完成。     
已邀请:
有点脏,但是我认为如果仅在FF和WebKit上需要它,您可以覆盖ѭ2。这是一个演示页面。
(function() {
    // save reference to the native method
    var oldOpen = XMLHttpRequest.prototype.open;
    // overwrite open with our own function
    XMLHttpRequest.prototype.open = function(method, url, async, user, pass) {
        // intercept readyState changes
        this.addEventListener(\"readystatechange\", function() {
            // your code goes here...
            console.log(\"Interception :) \" + this.readyState);
        }, false);
        // finally call the original open method
        oldOpen.call(this, method, url, async, user, pass);
    };
})();
在此之后,您可以做任何我想得到的事情。替换
instance.readystatechange
,替换
instance.addEventListener
或收听突变事件(尽管已弃用)。     
我认为您无法执行此操作,即使可以,也可以使用其他方法来加载aysnc内容,例如JSON-P 另一个选择是设置一个函数,该函数监视body元素是否有DOM的任何新添加。我认为这不是本机浏览器事件,因此您必须使用setTimeout()进行轮询。还请注意,遍历所有DOM元素可能很耗时。以下页面上的一些事件可能会有所帮助:http://www.quirksmode.org/dom/events/index.html     
我认为您将无法以一般方式执行此操作。请记住,ajax调用可以采用任何格式(html,xml,json等),然后启动它们的javascript可以在将数据插入文档之前对其执行任何操作。您无法真正监视此操作,除非您在知道要查找的特定情况下进行此操作。或者使用纯蛮力,您可以跟踪页面的内容并检查是否有规律的间隔更改。     

要回复问题请先登录注册