微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在浏览器扩展中实施网络工作者-捕获的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 举报,一经查实,本站将立刻删除。