Here è possibile cercare come creare un'estensione e scaricare l'esempio manifest.json.
Content Scripts può essere utilizzato per eseguire js/css corrispondenti a determinati URL.
manifest.json
{
"name": "Append Test Text",
"description": "Add test123 to body",
"version": "1.0",
"permissions": [
"activeTab"
],
"content_scripts": [
{
"matches": ["http://*/*"],
"js": ["content-script.js"]
}
],
"browser_action": {
"default_title": "Append Test Text"
},
"manifest_version": 2
}
content-script.js
var div=document.createElement("div");
document.body.appendChild(div);
div.innerText="test123";
Quanto sopra si esegue l'content-script.js
per tutti gli URL http://*/*
dove *
è un carattere jolly. quindi praticamente tutte le pagine http
.
Gli script di contenuto hanno molte proprietà che possono essere trovate nel link sopra.
Programmatic injection può essere utilizzato quando js/css non deve essere iniettato in ogni pagina che corrisponde al modello.
seguente mostra come eseguire i js onclick
dell'icona estensione: -
manifest.json
{
"name": "Append Test Text",
"description": "Add test123 to body",
"version": "1.0",
"permissions": [
"activeTab"
],
"background": {
"scripts": ["background.js"],
"persistent": false
},
"browser_action": {
"default_title": "Append Test Text"
},
"manifest_version": 1
}
background.js
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript({
code: 'var div=document.createElement("div"); document.body.appendChild(div); div.innerText="test123";'
});
});
Questo utilizza la executeScript metodo, che ha anche un'opzione per chiamare un sep file di arate in questo modo: -
background.js
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript({
file: "insert.js"
});
});
insert.js
var div=document.createElement("div");
document.body.appendChild(div);
div.innerText="test123";
Lo script contenuti listener di eventi viene eseguito in una pagina di sfondo; stai manipolando quella pagina di sfondo invece della pagina aperta nella scheda attiva del browser. La manipolazione della pagina di una scheda deve essere effettuata da uno [script di contenuto] (http://developer.chrome.com/extensions/content_scripts.html). La pagina di sfondo può utilizzare [message passing] (http://developer.chrome.com/extensions/messaging.html) per segnalare quando lo script di contenuto deve agire. (In alternativa, puoi creare una sorta di script di contenuti al volo usando ['executeScript'] (http://developer.chrome.com/extensions/tabs.html#method-executeScript).) – apsillers
Funziona per me quando lo eseguo nella console ma non nell'estensione. Potresti mandarmi il tuo file in modo che possa esaminarlo, vedere cosa potrei fare di sbagliato? – Ziamor
Penso che @DesertIvy confermi che il tuo script è stato formulato correttamente, non necessariamente che lo stai eseguendo nel posto giusto all'interno della struttura dell'estensione. – apsillers