Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 重新加载Chrome扩展名background.js文件_Javascript_Google Chrome Extension - Fatal编程技术网

Javascript 重新加载Chrome扩展名background.js文件

Javascript 重新加载Chrome扩展名background.js文件,javascript,google-chrome-extension,Javascript,Google Chrome Extension,编辑 我的chrome扩展在background.js文件中调用api服务,我可以获取数据。但是在关闭浏览器窗口后,我无法从background.js文件中的api服务获取数据。它显示空值。什么时候去医院chrome://extensions/ 然后重新加载扩展,我就可以得到数据了 关闭浏览器窗口时,将重置获取的数据;打开浏览器时,将不获取数据。只有在重新加载扩展后,才能从api获取数据 为什么会这样。有人知道这件事吗 这是我的manifest.json文件 { "manifest_vers

编辑

我的chrome扩展在background.js文件中调用api服务,我可以获取数据。但是在关闭浏览器窗口后,我无法从background.js文件中的api服务获取数据。它显示空值。什么时候去医院chrome://extensions/ 然后重新加载扩展,我就可以得到数据了

关闭浏览器窗口时,将重置获取的数据;打开浏览器时,将不获取数据。只有在重新加载扩展后,才能从api获取数据

为什么会这样。有人知道这件事吗

这是我的manifest.json文件

{
  "manifest_version": 2,
  "icons": {
    "16": "images/icon16.png",
    "32": "images/icon32.png",
    "48": "images/icon48.png",
    "128": "images/icon128.png"
  },
  "name": "Test",
  "short_name": "Test",
  "description": "Test",
  "version": "3.0.0",
  "background": {
    "scripts": [
      "build/background-bundle.js"
    ]
  },
  "browser_action": {
    "default_popup": "popup.html"
  },
  "permissions": [
    "tabs",
    "cookies",
    "storage",
    "activeTab",
    "http://*/",
    "https://*/"
  ],
  "content_scripts": [{
    "matches": [
      "<all_urls>"
    ],
    "js": [
      "build/content-bundle.js"
    ],
    "run_at": "document_end"
  }], 
  "options_ui": {    
    "page": "options.html",
    "chrome_style": true 
  },
  "content_security_policy": "script-src 'self' https://www.google-analytics.com/analytics.js https://api.algorithmia.com/v1/algo/algo://nlp/SummarizeURL/0.1.1; object-src 'self'"
}
{
“清单版本”:2,
“图标”:{
“16”:“images/icon16.png”,
“32”:“images/icon32.png”,
“48”:“images/icon48.png”,
“128”:“images/icon128.png”
},
“名称”:“测试”,
“短名称”:“测试”,
“说明”:“测试”,
“版本”:“3.0.0”,
“背景”:{
“脚本”:[
“build/background bundle.js”
]
},
“浏览器操作”:{
“默认弹出窗口”:“popup.html”
},
“权限”:[
“标签”,
“饼干”,
“存储”,
“活动标签”,
“http://*/”,
“https://*/”
],
“内容脚本”:[{
“匹配项”:[
""
],
“js”:[
“build/content bundle.js”
],
“运行时间”:“文档结束”
}], 
“选项界面”:{
“页面”:“options.html”,
“chrome_风格”:真实
},
“内容安全策略”:“脚本src'self”https://www.google-analytics.com/analytics.js https://api.algorithmia.com/v1/algo/algo://nlp/SummarizeURL/0.1.1;对象src“self”
}

除了重新打开浏览器或手动重新加载扩展名之外,您不能基于任何其他内容重新加载背景文件。您应该做的是让内容脚本在用户登录时告诉background.js再次运行
getTaxonomyList

background.js:

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
    if (request.userLoggedIn) {
       getTaxonomyList().done(function(list) {
          sendResponse(list);
       });
    }
})

上面的“下一个版本”是什么意思?你在上面的什么地方“根据用户登录id‘下一版本’传递一些附加数据意味着——下一版本的扩展。将基于用户cookie获取数据。正在后台脚本中获取sample-api-call。Chrome扩展后台脚本不与浏览器选项卡共享cookie,所以我认为这部分不起作用。有关更多信息,请参阅