我想在安装扩展程序后启动选项。 以下是我在这种情况下尝试使用的这个问题的很多答案。
我的问题是chrome.runtime.onInstalled
未定义。
这是我的源代码:
background.js
if(typeof chrome.runtime.onInstalled !== 'undefined')
{
chrome.runtime.onInstalled.addListener(function (details)
{
//if(details.reason == 'update') window.open(chrome.extension.getURL('options.html'));
if(details.reason == 'install') window.open(chrome.extension.getURL('options.html'));
});
}
我的manifest.json
{
"name": "Context Menu 2.0 for Google Translate™",
"short_name": "Translate",
"version": "1.0.0.4",
"manifest_version": 2,
"description": "Creates a context menu option to translate selected texts to a specified language",
"icons": {
"16": "trans_16.png",
"64": "trans_64.png",
"128": "trans_128.png"
},
"content_scripts": [
{
"matches":
[
"http://*/*", "https://*/*"
],
"js": ["background.js"]
}
],
"options_page": "options.html",
"background": {
"scripts": ["background.js"]
},
"permissions":[
"http://*/*", "https://*/*",
"storage","contextMenus"
]
}
我在清单中遗漏了什么或者为什么函数没有定义? 我不得不把支票包起来让我的附加组件工作。 否则我总是会收到一个错误,它会停止执行我的脚本。
答案 0 :(得分:5)
出于某种原因,您尝试使用相同的脚本作为后台脚本和内容脚本。永远不要这样做,因为它只是令人困惑,原因如下。我打赌你在内容脚本中看到了这个错误。
内容脚本have very, very limited access to Chrome API;特别是,他们无法使用此活动。由于内容脚本do not exist yet when the extension is initialized。
,因此也没有意义答案 1 :(得分:-1)
我遇到同样的问题,问题是chrome.runtime.onInstalled.addListener(...)
无法首次使用chrome.runtime
。