我正在开发Chrome 4(当前为4.0.249.0)中的扩展程序,该扩展程序将在状态栏中显示用户的StackOverflow/SuperUser/ServerFault信誉。我设计了一个选项页面来获取用户的个人资料ID,并将其保存到localStorage中,并在扩展程序中仔细阅读它们。一切都很好。
问题是我找不到在保存选项时刷新扩展名的(编程方式)。我尝试右键单击扩展页面本身的location.reload();
-无济于事。我进一步进行了尝试,并尝试查看Chrome的chrome://extensions/
页面如何重新加载扩展程序,并找到以下代码:
/**
* Handles a 'reload' button getting clicked.
*/
function handleReloadExtension(node) {
// Tell the C++ ExtensionDOMHandler to reload the extension.
chrome.send('reload', [node.extensionId]);
}
将此代码复制到事件处理程序并没有帮助(是的,我尝试用实际代码替换
[node.extensionId]
)。有人可以帮助我以正确的方式进行操作,还是向我指出可以正确执行此操作的扩展代码?完成后,我会将扩展程序及其源代码放在我的博客上。 最佳答案
您的扩展程序的javascript代码无法访问chrome.send函数,诸如newtab页面,历史记录和扩展程序页面之类的页面使用它与这些页面的C++ Controller 代码进行通信。
您可以将扩展程序的更新推送给安装了扩展程序的用户,这在here中进行了描述。一旦达到自动更新间隔或重新启动浏览器,用户的应用程序就会更新。但是,您不能以编程方式重新加载用户的扩展名。我认为这将带来安全风险。