在浏览器扩展中实施网络工作者-捕获的ReferenceError:未定义importScripts

问题描述

我正在尝试在我的Vue Web扩展中实施Web Worker。为了开始执行代码,我已经编写了以下几行代码,但是我从扩展名Uncaught ReferenceError: importScripts is not defined或其他错误Uncaught ReferenceError: browser is not defined中得到了这个错误,第二个错误是由worker.js文件引起的。我需要使用在vue配置文件import字段中声明的externals无法使用的脚本,并且在扩展名中通常可以正常工作,这就是为什么我使用{{ 1}}。

由于我需要一个工作流程,用户单击按钮后才能启动Web Worker,因此我使用消息传递系统告诉后台脚本启动Web Worker,下面是代码

manifest.json

importScripts()

background.js

{
  "manifest_version": 2,"name": "__MSG_extName__","description": "__MSG_extDescription__","default_locale": "en","permissions": [
    "https://*","tabs","activeTab","webRequest"
  ],"icons": {
    "16": "icons/16.png","48": "icons/48.png","128": "icons/128.png"
  },"background": {
    "scripts": [
      "js/worker.js","js/background.js"
    ],"persistent": true
  },"page_action": {}
}

worker.js

browser.runtime.onMessage.addListener( (message) => {
  if( message.status === 'startDownload' ){
    const worker = new Worker(browser.runtime.getURL('js/worker.js'))
    console.log(worker)
    worker.postMessage(['hello'])
  }
})

popup.js文件

importScripts(browser.runtime.getURL('./assets/m3u8.js'))

onmessage = (msg) => {
  console.log('message from background script!',msg)
}

代码有什么问题,如何使事情正常?

解决方法

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

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

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