Manifest:
codice:
{
"name": "First Extension",
"version": "1.0",
"description": "The first extensione tha I made",
"permissions":["contextMenus"],
"background_page": "background_page.html",
"browser_action":{
"name": "My First Extension!",
"default_icon": "Chrome_icon32bn.png",
/*"default_popup": "popup.html",*/
"default_title": "My First Extension!"
},
"icons": {
"16": "Chrome_icon19color.png",
"48": "Chrome_icon32color.png",
"128": "Chrome_icon.png"
}
}
HTML (background page):
codice:
<!doctype html>
<html>
<head>
<title>Background Page</title>
<script src="script.js"></script>
</head>
<body>
</body>
</html>
Javascript (script.js):
codice:
var color_or_bn = "color";
var badge = "";
/////////// BROWSER ACTION /////////////
if( window.chrome ){
chrome.browserAction.setBadgeText({text:badge});
chrome.browserAction.setBadgeBackgroundColor({color:[150,150,150,25]});
chrome.browserAction.onClicked.addListener(function(tab){
badge = (badge!="")?"":String(tab.id);
badgeBckColor = (badge!="")? Array(0,0,255,120) : Array(150,150,150,25);
chrome.browserAction.setBadgeText({text:badge});
chrome.browserAction.setBadgeBackgroundColor({color: badgeBckColor});
chrome.browserAction.setIcon({path:"Chrome_icon32"+color_or_bn+".png"});
color_or_bn = (color_or_bn == "color")? "bn" : "color";
});
}
/////////// BROWSER CONTEXT MENU ////////////////
var arr_context = ["all", "page", "frame", "selection", "link", "editable", "image", "video", "audio"];
for(i=0; i<arr_context.length; i++){
var title = arr_context[i];
var menu1 = chrome.contextMenus.create({"type":"normal", "title":"Menu "+title, "contexts":arr_context, "onclick":callBack });
}
function callBack(info, tab){ console.log(info.menuItemId+"; URL: "+tab.url); }
Funziona tutto MA la non riesco ad ottenere i log nella console di javascript. Gli alert vanno ma la console mi da errore (solo nella pagina "background page", ovviamente)
Errore: Uncaught TypeError: Cannot call method 'setBadgeText' of undefined