修改
我的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'"
}
答案 0 :(得分:1)
除了重新打开浏览器或手动重新加载扩展程序之外,您无法重新加载后台文件。您应该做的是让内容脚本告诉background.js在用户登录时再次运行getTaxonomyList
。
background.js:
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if (request.userLoggedIn) {
getTaxonomyList().done(function(list) {
sendResponse(list);
});
}
})