Javascript 如何瞄准Chromium浏览器扩展中赢得的bug';如果在开发模式下本地安装,则不能使用
我刚刚测试了我的Chrome插件 在正式安装后,即通过CWS(Chrome Web Store),但突然惊讶于它无法工作。我总是通过在开发模式下本地安装它来使用它,也就是说,将安装在Javascript 如何瞄准Chromium浏览器扩展中赢得的bug';如果在开发模式下本地安装,则不能使用,javascript,google-chrome-extension,chromium,Javascript,Google Chrome Extension,Chromium,我刚刚测试了我的Chrome插件 在正式安装后,即通过CWS(Chrome Web Store),但突然惊讶于它无法工作。我总是通过在开发模式下本地安装它来使用它,也就是说,将安装在{the Chrome directory}\User Data\Default\Extensions\OECAICENGBGEMDDBDKLMAJOCOGDJJGNDA上的插件复制到另一个目录,然后将其拖动到chrome://extensionURL(开发者模式开启时)。然后我不得不从它的manifest.json
{the Chrome directory}\User Data\Default\Extensions\OECAICENGBGEMDDBDKLMAJOCOGDJJGNDA上的插件复制到另一个目录,然后将其拖动到chrome://extension
URL(开发者模式开启时)。然后我不得不从它的manifest.json
中删除键
,然后禁用通过CWS安装的第一个键。
我可以在本地开发者模式和CWS扩展之间切换扩展,以防止同时安装和启用两个冲突的相同扩展
区别非常明显,它在使用CWS(“添加到Chrome”)安装时不起作用,但它只在本地开发人员模式下起作用
你能和我一样帮我解决问题吗?希望你比我更有知识,这样我就可以修复这个bug并解决这个问题。这是一个常见的问题:你使用的是非持久性背景脚本(“persistent”:manifest.json中的false
)和chrome.runtime.onInstalled listener,您可以在其中注册一些侦听器
这是错误的,因为只有在安装/更新普通扩展时才会触发onInstalled,但非持久性后台脚本应在全局上下文中注册其侦听器,以便在每次恢复非持久性后台脚本时都会更新它们
它在开发者模式下工作,只是因为重新加载扩展被Chrome视为onInstalled中报告的更新事件。或者您可能已经为您的后台脚本打开了devtools,这阻止了它在5秒内卸载,这是它的标准行为
TL;博士
将chrome.browserAction.onClicked注册移出chrome.runtime.onInstalled:
chrome.runtime.onInstalled.addListener(function(info) {
// code that should run on install/update
// ...............
});
chrome.browserAction.onClicked.addListener(function(tab) {
// code that should run on clicking the extension icon
// ...............
});
当你说它不工作时,你的意思是它没有被chrome加载,或者它没有按照预期的方式运行或执行操作?请提供有关您面临的错误的更多信息