Javascript 通过Chrome扩展在新选项卡页面加载上查询域

Javascript 通过Chrome扩展在新选项卡页面加载上查询域,javascript,json,google-chrome-extension,console.log,Javascript,Json,Google Chrome Extension,Console.log,每当选项卡处于活动状态且域/页面已完全加载时,只要用户单击我的chrome扩展,我就可以简单地将域(或完整网址)记录到控制台。在其当前状态下,这只适用于以前加载过网页的选项卡。如果我单击创建一个新选项卡,然后导航到一个域,则什么也不会发生,我必须切换到另一个选项卡,然后再次返回以记录信息 manifest.json "background": { "scripts": [ "background.js", "popup.js" ], "persistent": false }, ...

每当选项卡处于活动状态且域/页面已完全加载时,只要用户单击我的chrome扩展,我就可以简单地将域(或完整网址)记录到控制台。在其当前状态下,这只适用于以前加载过网页的选项卡。如果我单击创建一个新选项卡,然后导航到一个域,则什么也不会发生,我必须切换到另一个选项卡,然后再次返回以记录信息

manifest.json

"background": {
"scripts": [
  "background.js",
  "popup.js"
],
"persistent": false
},
...
"permissions": ["tabs"]
background.js

chrome.runtime.onInstalled.addListener(function() {
  console.log("The extension has been installed successfully.");
});
chrome.tabs.onActivated.addListener(function (tab) {
  chrome.tabs.query({
    active: true,
    currentWindow: true
    },
  function (tabs) {
    var tab = tabs[0];
    var url = tab.url;
    var host = tab.hostname;
    console.log("id: " + tab.id + "url:" + tab.url + "domain:" + tab.hostname + "description: " + title);
    });
});
popup.js

chrome.runtime.onInstalled.addListener(function() {
  console.log("The extension has been installed successfully.");
});
chrome.tabs.onActivated.addListener(function (tab) {
  chrome.tabs.query({
    active: true,
    currentWindow: true
    },
  function (tabs) {
    var tab = tabs[0];
    var url = tab.url;
    var host = tab.hostname;
    console.log("id: " + tab.id + "url:" + tab.url + "domain:" + tab.hostname + "description: " + title);
    });
});

请务必研究文档中的架构文章-看起来您混淆了browserAction脚本和背景脚本。完全删除popup.js,将其代码放在background.js中,并使用chrome.browserAction.onClicked侦听器,而不是onActivated+query,这需要“browser\u action”:{}在manifest.json中,只需确保检查文档中的确切语法和参数。