如何从firefox扩展xpcom组件内部获取发起get请求的页面元素?

如何从firefox扩展xpcom组件内部获取发起get请求的页面元素?,firefox,get,xpcom,Firefox,Get,Xpcom,我有一个firefox扩展xpcom组件,它在修改请求时侦听http,并获取发出请求的页面的位置: getLocationOfOriginatingWindow: function (httpChannel) { try { var notificationCallbacks; if (httpChannel.notificationCallbacks) { notificationCallbacks = httpChanne

我有一个firefox扩展xpcom组件,它在修改请求时侦听http,并获取发出请求的页面的位置:

getLocationOfOriginatingWindow: function (httpChannel) {
    try {  
        var notificationCallbacks;

        if (httpChannel.notificationCallbacks) {
            notificationCallbacks = httpChannel.notificationCallbacks;
        }
        else if (httpChannel.loadGroup && httpChannel.loadGroup.notificationCallbacks) {
            notificationCallbacks = httpChannel.loadGroup.notificationCallbacks;        
        }
        else {
            return null;
        }

        return notificationCallbacks.getInterface(Components.interfaces.nsIDOMWindow).top.location;  
    }  
    catch (e) {
        DEBUG("Exception getting Window Location: " + e + "\nChannel URI: " + httpChannel.URI.spec); 
        return null;  
    }  
},

我还想获取请求img、script等的页面元素。。有没有一种方法可以从httpChannel执行此操作?

没有具体的方法来说明HTTP观察者发出请求的原因,因为有很多不同的触发请求的方法,例如CSS背景图像滚动。您可以尝试从内容策略端解决这个问题,我相信这会给您提供更多信息。

由于触发请求的方式有很多种,例如CSS背景图像滚动,因此没有具体的方法来判断HTTP observer发出请求的原因。您可以尝试从内容策略端解决此问题,我相信这会为您提供更多信息。

我不确定您所说的内容策略端是什么意思。如果您是指查看页面并搜索激发get请求的元素,那么问题在于某些对象脚本、flash可能非常不透明。也许你可以详细说明一下?有一个系统可以通过网页检测资源负载,称为内容策略。当您注册内容策略时,您可以监视尚未被其他内容策略阻止的所有资源加载。请参阅以了解您可以观看的加载类型。我不确定您所说的内容策略结束是什么意思。如果您是指查看页面并搜索激发get请求的元素,那么问题在于某些对象脚本、flash可能非常不透明。也许你可以详细说明一下?有一个系统可以通过网页检测资源负载,称为内容策略。当您注册内容策略时,您可以监视尚未被其他内容策略阻止的所有资源加载。有关可以查看的负载类型,请参见。