我正在开发一个简单的链接共享扩展(插板、可读性、美味等),并且有一个关于如何正确处理上下文菜单项的问题。在我的非持久性背景页面中,我调用chrome.contextMenus.create
并chrome.contextMenus.onClicked.addListener
设置/响应上下文菜单。
上下文菜单条目按预期工作。但是后台页面显示以下错误(在它启动之后和我使用该条目之前):
contextMenus.create: Cannot create item with duplicate id id_share_link at chrome-extension://.../share.js:52:30 lastError:29 set
这让我意识到,我在任何时候都不会删除项目或监听器。对javascript和扩展知之甚少,我想知道我是否正确地做所有事情。我假设每次调用后台页面时都会重新执行此顶级代码。所以会有多余的调用来创建和 addListener (因此我看到的错误被记录了)。
我显然无法响应挂起进行清理,因为需要存在这些调用才能唤醒后台脚本。
我应该以不同的方式处理事情吗?