首页 > 解决方案 > 发送有关所有选项卡的信息,但侦听器仅工作一次并显示最终选项卡的 URL

问题描述

当我按下按钮时,我的扩展程序正在发送窗口中所有选项卡的选项卡 URL。由于某种原因,它只发送一条消息,只收到最后一个选项卡的 URL。我想做的是创建每个选项卡的所有 URL 的列表。因此,例如,如果一个人有两个标签“google.ca”和“bing.ca”,我将能够收集这些信息并最终列出这两个 URL。目前我只得到一个 URL,在这个例子中是 bing.ca。

背景.js

chrome.browserAction.onClicked.addListener(buttonClicked)

function buttonClicked(){
    chrome.tabs.query({currentWindow:true},function(tabs){   //currentWindow:true ensures all tabs   
        tabs.forEach(function(tab){
         chrome.tabs.sendMessage(tab.id,tab.url);
       });
    });
}

草图.js

chrome.runtime.onMessage.addListener(gotMessage);

var messagesReceived = 0;   //even tracking how many messages are received manually and this increments 
                            //only once 

function gotMessage(message,sender,sendResponse){
    console.log("\n");
    console.log(message);
    messagesReceived += 1;
    console.log(messagesReceived);
}

标签: google-chromegoogle-chrome-extension

解决方案


推荐阅读