我正在尝试编写chrome扩展程序,以便通过使用Chrome网上应用店或其他方式来侦听其他扩展程序的安装/卸载/启用/禁用事件。
我计划使用chrome.management模块。
我已经在manifest.json文件中声明了权限。
"permissions": [
"management"
],
我有一个background.html页面
"background": {
"page": "background.html"
},
我已将background.js作为background.html页面
的一部分<html>
<script type="text/javascript" src="js/background.js"></script>
<body>
</body>
</html>
这是我的background.js
chrome.management.onInstalled.addListener(function(ExtensionInfo info) {
console.log('somethingz installed...');
printInfo(info);
});
chrome.management.onEnabled.addListener(function(ExtensionInfo info) {
console.log('somethingz enabled...');
printInfo(info);
});
chrome.management.onDisabled.addListener(function(ExtensionInfo info) {
console.log('somethingz disabled...');
printInfo(info);
});
function printInfo(info)
{
console.log("id: " ++ info.id);
console.log("name: " ++ info.name);
console.log("description: " ++ info.description);
console.log("version: " ++ info.version);
console.log("mayDisable: " ++ info.mayDisable);
console.log("enabled: " ++ info.enabled);
console.log("disabledReason: " ++ info.disabledReason);
console.log("type: " ++ info.type);
console.log("appLaunchURL: " ++ info.appLaunchURL);
console.log("homepageUrl: " ++ info.homepageUrl );
console.log("updateUrl: " ++ info.updateUrl );
console.log("offlineEnabled: " ++ info.offlineEnabled);
console.log("optionsUrl: " ++ info.optionsUrl);
console.log("icons: " ++ info.icons);
console.log("permissions: " ++ info.permissions);
console.log("hostPermissions: " ++ info.hostPermissions);
console.log("installType: " ++ info.installType);
}
我正在尝试通过查看chrome://扩展页面调试background.html页面,我看到了 -
Uncaught SyntaxError: Unexpected identifier
由于此错误,事件未按预期触发。
请帮忙!!不确定是什么导致“未捕获的SyntaxError:意外的标识符”错误...可能它是太基本的东西,但是,我不能通过查看它很长一段时间来抓住它!
答案 0 :(得分:3)
您的代码有两个主要问题。首先,在侦听器中包含参数的类型,在本例中为ExtensionInfo
,删除它。其次,您正在使用2 +
将其更改为1。
结果代码如下所示:
chrome.management.onInstalled.addListener(function(info) {
console.log('somethingz installed...');
printInfo(info);
});
这个
function printInfo(info){
console.log("id: " + info.id);
作为旁注,您可以执行以下操作,而不是手动记录信息的每个部分:
console.log(JSON.stringify(info).replace(',','\n'));