Firefox addon Firefox插件进程侦听器

Firefox addon Firefox插件进程侦听器,firefox-addon,http-status-code-302,Firefox Addon,Http Status Code 302,我使用这个页面来实现一个地址栏更改侦听器 此代码执行它应该执行的操作。当我导航到新页面时,它会提醒URL。但是,如果我的URL是302或类似的,则会导致问题。它将通知重定向的URL,而不是原始URL。在请求发送到服务器和重定向发生之前,我需要URL。这可能吗?我想您可以通过onStateChange事件检查这一点 var myExtension = { oldURL: null, init: function() { gBrowser.addProgressL

我使用这个页面来实现一个地址栏更改侦听器


此代码执行它应该执行的操作。当我导航到新页面时,它会提醒URL。但是,如果我的URL是302或类似的,则会导致问题。它将通知重定向的URL,而不是原始URL。在请求发送到服务器和重定向发生之前,我需要URL。这可能吗?

我想您可以通过onStateChange事件检查这一点

var myExtension = {
    oldURL: null,

    init: function() {
        gBrowser.addProgressListener(this);
    },

    uninit: function() {
        gBrowser.removeProgressListener(this);
    },

    processNewURL: function() {},

    // nsIWebProgressListener
    QueryInterface: XPCOMUtils.generateQI(["nsIWebProgressListener",
                                           "nsISupportsWeakReference"]),

    onLocationChange: function(aProgress, aRequest, aURI) {
        this.processNewURL(aURI);
    },

    onStateChange: function(aWebProgress, aRequest, aStateFlags, aStatus) {
        if (!aRequest) return;

        if (aStateFlags & nsIWebProgressListener.STATE_START) {
            alert(aRequest.name);
    },

    onProgressChange: function() {},
    onStatusChange: function() {},
    onSecurityChange: function() {}
};

window.addEventListener("load", function() { myExtension.init() }, false);
window.addEventListener("unload", function() { myExtension.uninit() }, false);
请参阅此处的更多信息:


aRequest
是一个nsIRequest,其属性名是请求的URL

在Chrome浏览器中,我可以使用
webRequest.onBeforeRequest
实现这一点<代码>chrome.webRequest.onBeforeRequest.addListener(函数(细节){last_url=details.url;}},{url:[],类型:[“main_frame”]})您是说您找到了解决方案还是解决方法?如果是这样的话,那么你应该把它作为一个答案发布并接受它。如果你不能,请回复此评论。不,我仍在寻找解决方案。这就是chrome浏览器处理我在Firefox中所做的事情的方式。我不知道这是否有助于任何人回答我的问题。当我运行此代码时,什么都没有发生。它没有通知任何URL