2010-04-23 5 views
1

Je vous écris ma première extension de chrome, et je veux passer une variable à l'onglet actuellement ouvert et manipuler le DOM avec elle.variables Pass pour onglet en cours via l'extension chrome

Mon poste a un bouton et lorsque vous cliquez dessus, exécute ce code:

chrome.tabs.getSelected(null, function(tab) { 
chrome.tabs.executeScript(tab.id, { 
    file: 'tabscript.js' 
}); 
}); 

Cela fonctionne très bien, mais je ne vois aucun moyen de passer une variable à tabscript.js il peut donc être utilisé sur la onglet ouvert.

Répondre

4

De quoi avez-vous besoin pour transmettre une variable? Avez-vous une fonction que vous appelez dans votre script?

Il faut noter que vous n'avez pas accès aux pages Javascript, juste le DOM.

Si vous avez une fonction particulière que vous devez appeler avec des paramètres spécifiques, vous devez rechercher content scripts et message passing.

scripts de contenu peuvent se lancer à chaque chargement de page (ou une sélection de pages), et que vous utiliseriez le passage de messages pour envoyer un message à partir de votre bouton d'extension à la fonction dans le script de contenu.

Alternativly, et plus proche de votre idée originale que vous pouvez construire la fonction que vous voulez appeler à l'exécution en utilisant les éléments suivants:

chrome.tabs.getSelected(null, function(tab) { 
chrome.tabs.executeScript(tab.id, { 
    code: 'function(){ ...... your code built dynamically ......}' 
}); 
}); 
+0

Etes-vous sûr code fonctionne? J'ai essayé si mais en utilisant function() {alert ('a'); } ça ne marche pas, avec alerte ('a'); seul c'est le cas. J'essaie de réaliser quelque chose de semblable à la question originale. – user979390

+0

http://stackoverflow.com/questions/10052259/accessing-global-object-from-content-script-in-chrome-extension –

Questions connexes