【问题标题】:Redefine XMLHTTPRequest in overlay.js in Mozilla Firefox Add-on在 Mozilla Firefox 附加组件的 overlay.js 中重新定义 XMLHTTPRequest
【发布时间】:2011-04-11 11:53:59
【问题描述】:

我正在构建一个 firefox 扩展,并希望为每个加载的页面更改 XMLHTTPRequest 对象的行为。

我发现以下代码可以解决问题:

appcontent.addEventListener("load", function(event){
        var original_xhr = XMLHttpRequest;
        XMLHttpRequest = function () {
            original_xhr();
            alert ("I redefined this function");
        }
        alert ("Page loading");
    } , true)

我已将这段代码添加到我的 overlay.js 文件中。加载事件正常工作,因为“页面加载”警报出现了。但是 XMLHTTPRequest 没有被覆盖。

有谁知道怎么回事?

【问题讨论】:

    标签: firefox-addon mozilla xmlhttprequest redefine


    【解决方案1】:

    我设法通过另一种方式获取信息。拦截 httpchannel 后,我使用以下代码查看请求是否源自 xhr 请求:

    try
    {
        var callbacks = httpChannel.notificationCallbacks;
        if (callbacks) {
            var xhrInterface = callbacks.getInterface(Components.interfaces.nsIXMLHttpRequest);
            // XHR REQUEST
        }
    }
    catch (exc)
    {
        if (exc.name == "NS_NOINTERFACE") {
            // NO XHR REQUEST
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-20
      • 1970-01-01
      • 2019-06-20
      • 2019-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多