J'essaie de faire une extension firefox, qui affiche deux boutons: 1 et 2. Lorsque vous appuyez sur button1 pour obtenir var value, c'est l'adresse de la page ouverte en cours, puis nouvel onglet s'ouvre en devenant actif. Dans cet onglet, il y a button2, qui permet de mettre (innerHTML) la valeur de var path (cette adresse du premier onglet). Et maintenant le problème: button1 utilise la fonction open() et utilise Bouton2 save(), mais var en doesnt première fonction existe dans kuku.save()variables enfer - problème avec vars et onglets (extension firefox)
Voici mon code:
function openTab() {
//Save an address of current page
path=content.location.href;
//Open new Tab and select it
var tab=gBrowser.addTab("http://www.google.com");
var newTabBrowser = gBrowser.getBrowserForTab(tab);
gBrowser.selectedTab=tab;
}
function write() {
content.body.innerHTML=path;
}
Fonction openTab()
est exécuter, lorsque le bouton approprié est enfoncé, la même chose avec la fonction write()
. Le problème est, comment enregistrer à var cette adresse, parce que si je le ferai de la première fonction, la fonction qui est du bouton n'a pas ce var. Après cela, j'essaie ce code:
var path = null;
function openTab() {
//Save an address of current page
path=content.location.href;
//Open new Tab and select it
var tab=gBrowser.addTab("chrome://intabeditor/content/editor.html");
var newTabBrowser = gBrowser.getBrowserForTab(tab);
gBrowser.selectedTab=tab;
}
function write() {
if (path!=null)
content.body.innerHTML=path;
}
Mais dans ce code est mauvais aussi. Je pensais que le problème est becouse chemin est var local, alors j'essaie d'utiliser var "plus globale":
var kuku = {};
kuku.path = "";
kuku.open = function() {
kuku.path = content.location.href;
//The rest of the code here
};
kuku.save = function() {
content.body.innerHTML=kuku.path;
};
Dans cet exemple button1 utilise kuku.open(), Bouton2 kuku.save()
Cela fonctionnerait, seulement pour un onglet par navigateur. Je veux dire, lorsque l'utilisateur appuie sur le bouton 1 de la page A, et sur le bouton 1 de la page B, alors ces deux nouvelles pages ouvertes auront un chemin de la même valeur. Lorsque vous appuyez sur le bouton sur un autre site, il écrasera la dernière valeur du chemin. Par exemple: Quand j'ai 2 onglets ouverts (google.com et facebook.com) et à partir de gogle j'appuierai sur le bouton 1, cela ouvrira un nouvel onglet et la valeur de kuku.path sera google adddress. Mais ensuite, quand j'appuie sur button1 dans facebook, la valeur changera en adresse facebook et sera la même dans ces deux nouvelles pages ouvertes. J'espère que je n'ai pas fait vous sentir étourdi;)
Quelle est votre extension supposée faire? Cela clarifierait peut-être votre question. –