谷歌浏览器扩展程序API:两个单独的内容脚本不在两个单独的标签中运行吗?

问题描述

我一直试图在一个选项卡上运行一个内容脚本(primary-script.js),然后复制该选项卡并在第二个选项卡上运行第二个内容脚本(secondary-script.js),但是这些脚本是没有运行。

manifest.json

{
  "name": "ext","version": "1.0.0","description": "","manifest_version": 2,"permissions": [
    "https://*/*","http://*/*","webNavigation","activeTab","tabs"
  ],"background": {
    "scripts": ["background.js","hot-reload.js"],"persistent": false
  },"browser_action": {
    "default_title": "Inject!","default_popup": "popup.html"
  }
}

background.js

const primaryScript = 'primary-tab.js'
const secondaryScript = 'secondary-tab.js'

chrome.runtime.onInstalled.addListener(() => {
  console.log('[background] chrome.runtime.onInstalled initialize')
})

// https://developer.chrome.com/extensions/webNavigation
// https://developer.chrome.com/extensions/background_pages#filters
chrome.webNavigation.onCompleted.addListener(
  function () {
    chrome.tabs.query({ url: '<my_site>' },(tabs) => {
      console.log({ tabs })
      if (tabs.length === 1) {
        const [currentTab] = tabs

        chrome.tabs.executeScript(currentTab.id,{
          // file: primaryScript,// runAt: 'document_end',code: 'console.log("Primary.")',})

        chrome.tabs.create(
          { url: currentTab.url,selected: false },(duplicateTab) => {
            chrome.tabs.executeScript(duplicateTab.id,{
              // file: secondaryScript,code: 'console.log("Secondary.")',})
          }
        )
      }
    })
  },{ url: [{ urlMatches: '<my_site>' }] }
)

在我使用console.log的两个实例中的chrome.tabs.executeScript()都不会在我访问这些网页时运行,但是重复的标签会打开。我期望两个选项卡的devtool中都有不同的console.log

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)