Javascript 铬延长环

Javascript 铬延长环,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我现在有下面的代码。然而,这只是不断循环,我不知道为什么会发生 chrome.runtime.onMessage.addListener(function(request, sender) { url = request.url; UName = request.username; PWord = request.password; chrome.tabs.update(sender.tab.id, {url: request.redirect}); ch

我现在有下面的代码。然而,这只是不断循环,我不知道为什么会发生

chrome.runtime.onMessage.addListener(function(request, sender) {
    url = request.url;
    UName = request.username;
    PWord = request.password;
    chrome.tabs.update(sender.tab.id, {url: request.redirect});
    chrome.tabs.onUpdated.addListener(function (changeInfo) {  

        chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
            chrome.tabs.sendMessage(tabs[0].id, {message: "hello", username: UName, password: PWord}, function(response) {
            });
        chrome.tabs.onUpdated.removeListener();
        return;
        });
    });
});

chrome.tabs.onUpdate.removeListener
不是一个。您可能需要使用一个变量来跟踪回调是否已经执行,而不是删除侦听器。

您正在将一条消息从它发送到它自己?我正在将一条消息从content.js发送到background.js,然后在重定向后它将一条消息发送回content.js,但是我该如何删除侦听器?正如我所说,您必须跟踪一个变量,该变量跟踪您是否已经响应。