descargar - jquery min map
Extensión de Chrome: encuentre todas las pestañas abiertas y ejecute el script en todas (3)
Prueba este. Espero que esto ayude.
chrome.browserAction.onClicked.addListener(function(tab) {
executeScriptsInExistingTabs();
});
function executeScriptsInExistingTabs(){
chrome.windows.getAll(null, function(wins) {
for (var j = 0; j < wins.length; ++j) {
chrome.tabs.getAllInWindow(wins[j].id, function(tabs) {
for (var i = 0; i < tabs.length; ++i) {
if (tabs[i].url.indexOf("chrome://") != 0) {
chrome.tabs.executeScript(tabs[i].id, { file: ''js/change.js'' });
}
}
});
}
});
}
Al tratar de modificar mi código para cuando se haga clic en el botón de extensión, se ejecutará en todas las pestañas abiertas en lugar de solo en la activa.
background.js
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript(null, { file: "jquery-2.1.0.min.js" }, function() {
chrome.tabs.executeScript(null, {file: "change.js"});
});
});
manifest.json
{
"manifest_version": 2,
"name": "GSHOP",
"version": "2",
"description": "I do Stuff",
"background": {
"persistent": false,
"scripts": ["jquery-2.1.0.min.js", "background.js"]
},
"browser_action": {
"name": "Manipulate DOM",
"icons": ["icon.png"],
"default_icon": "icon.png"
},
"permissions": [
"activeTab",
"tabs",
"http://*/*", "https://*/*"
]
}
Creo que tengo la lógica baja, simplemente no puedo entender cómo hacerlo. Creo que necesito encontrar cuántas pestañas hay abiertas tabs.length?
e iterar sobre ellos, pero simplemente no puedo hacer que funcione.
No funciona
chrome.browserAction.onClicked.addListener(function(tabs) {
for (var i = 0; i < tabs.length; i++) {
chrome.tabs.executeScript(tabs[i].id, {file: "jquery-2.1.0.min.js" }, function() {
chrome.tabs.executeScript(tabs[i].id, {file: "change.js"});
});
}
});
Pruebe de esta manera:
chrome.browserAction.onClicked.addListener(function (tab) {
chrome.tabs.query( {} ,function (tabs) { // The Query {} was missing here
for (var i = 0; i < tabs.length; i++) {
chrome.tabs.executeScript(tabs[i].id, {file: "jquery-2.1.0.min.js"});
chrome.tabs.executeScript(tabs[i].id, {file: "change.js"});
}
});
});
chrome.browserAction.onClicked
devoluciones de llamada chrome.browserAction.onClicked
toman un solo objeto de tab
para la pestaña actual. No es una lista de todas las pestañas. Dentro de la onClicked
llamada onClicked
tendrás que ejecutar chrome.tabs.query y recorrer las pestañas en la devolución de llamada de la query
.