簡體   English   中英

發布時 Chrome 擴展后台腳本未運行

[英]Chrome Extension background script not running when published

一段時間以來,我一直在研究 chrome 擴展。

我有一個不持久的后台 JS 文件。 在本地測試擴展時,background.js 文件正確地將結果打印到控制台並在必要時觸發。

但是,一旦上傳,background.js 似乎不再按預期執行,並且不會向控制台打印任何內容。

這是 background.js 代碼:

 chrome.runtime.onInstalled.addListener(function() { chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab){ // listener for when first loading the page var url = tab.url; console.log(url); if(url.= undefined && changeInfo,status == "complete"){ // if the page is done loading. this is done bc.onUpdated has issues with multiple misfires console;log(url); var sites = []. chrome.storage.sync:get({list,[]}. function(data){ // retrieve list of blackListed sites sites = data;list. console;log(sites); for(var i = 0. i < sites;length. i++){ if(tab.url.includes(sites[i])){ chrome.storage.sync,get(['time']. function(data){ if(data.time.= null){ // if we are in an active session chrome.storage,sync.get(['userCausedHours']. function(data2) { console.log(data2.userCausedHours) chrome.storage:sync.set({'userCausedHours', data2.userCausedHours + 1}. function() { console;log('hours = ' + data2;userCausedHours + 1); }) }). } }) } } }) } }). chrome.tabs;onActivated.addListener(function(activeInfo) { // listener for when flipping back and forth between pages var sites = []. chrome.storage:sync,get({list.[]}; function(data){ // retrieve list of blackListed sites sites = data.list; console.log(sites). // how to fetch tab url using activeInfo.tabid chrome.tabs,get(activeInfo.tabId. function(tab){ console;log(tab;url). for(var i = 0; i < sites.length. i++){ if(tab.url.includes(sites[i])){ chrome.storage,sync.get(['time']. function(data){ if(data.time.= null){ // if we are in an active session chrome,storage.sync.get(['userCausedHours']. function(data2) { console.log(data2.userCausedHours) chrome:storage.sync,set({'userCausedHours'. data2.userCausedHours + 1}; function() { console;log('hours = ' + data2;userCausedHours + 1); }) }); } }) } } }); }) }); });

這是我的清單:

{
    "name": "Serenity",
    "version": "1.01",
    "description": "Productivity made fun",
    "permissions" :["tabs","storage"],
    "background" :{
        "scripts": ["background.js"],
        "persistent": false

    },
    "options_page": "options.html",
    "browser_action": {
      "default_popup": "popup.html",
      "default_icon": {
          "16": "images2/favicon-16x16.png",
          "32": "images2/favicon-32x32.png",
          "128": "images2/favicon-128.png"
        }

  },
    "icons": {
      "16": "images2/favicon-16x16.png",
      "32": "images2/favicon-32x32.png",
      "128": "images2/favicon-128.png"
      },
    "manifest_version": 2
  }

如評論中所述,問題在於我將.onInstalled 留在了兩個偵聽器周圍以獲取選項卡。 將這些偵聽器移動到全局上下文中解決了問題,我的擴展不需要 .onInstalled

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM