Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# menulist : liste des URLs, sélection de l'URL du Tab courant

Envoyé par : chrislabricole

Date : 30/10/2008 00:39

Bonsoir tout le monde,

Je poste car cela fait 2h que je bloque sur la même chose, j'ai essayé plusieurs solutions mais rien ne marche :/

Voici le problème : J'ai une FOR qui liste toutes les URLs des onglets ouverts, le problème, c'est que rien n'est sélectionner par défaut (normal) et je voudrai que l'URL de l'onglet en cours soit sélectionné par défaut...

Voilà la partie concernée de mon XUL :

<menulist rows="1" readonly="true" size="60" id="url_1" crop="center">

</menulist>

Et voilà mon JavaScript :

function onDialogLoad(){
var currentURLtab = window.opener.gBrowser.contentDocument.location.href;
var list = document.getElementById('url_1');


var browsers = window.opener.document.getElementById('content').browsers; 
   var numBrowsers = browsers.length; 
for( var i=0; numBrowsers>i; i++){ 
   	var thisURI = browsers[i].currentURI.spec; 
	list.appendItem(thisURI, thisURI); // Fonctionne ! :)
	if( thisURI == currentURLtab ){ // SI l'URL de la FOR est la même que celle de l'onglet courant...
		//alert(list[i]); // Renvoi undefined il me semble
		//list[i].selected = true; // Donc ne peut pas fonctionner...
		//alert(list.lastChild); Renvoi quelque chose du genre [XUL Object]
		list.lastChild.selected = true; // en pensant que ça aller fonctionner, ben non...
	}
   } 
}

Résultat, les URLs sont bien dans le menu de sélection, mais je n'arrive pas à presélectionner l'URL de l'onglet en cours... En faisant plein de tests, la condition if( thisURI == currentURLtab ){ est bien bonne, le problème c'est se qu'il y a à l'intérieur...

Voilà, en espérant que vous aller pouvoir m'aider, Merci d'avance.

# Re: menulist : liste des URLs, sélection de l'URL du Tab courant

Envoyé par : Paul Rouget

Date : 30/10/2008 12:00

et simplement :

list.appendItem(thisURI, thisURI).selected = (thisURI == currentURLtab);

?

# Re: menulist : liste des URLs, sélection de l'URL du Tab courant

Envoyé par : chrislabricole

Date : 30/10/2008 12:39

Je te remercie beaucoup de ta réponse,

Mais ça ne marche pas, j'ai essayé ta solution, en ne mettant seulement

list.appendItem(thisURI, thisURI).selected = (thisURI == currentURLtab);

dans le FOR...

Et j'ai aussi essayé cela :

if( thisURI == currentURLtab ){
		var selected_tf = true;
	} else {
		var selected_tf = false;
	}
	
	list.appendItem(thisURI, thisURI).selected = selected_tf;
}

Mais ça ne marche pas... En fait, les 2 solutions me renvoies seulement l'URL du PREMIER onglet ouvert... seulement la première... (évidement pas sélectionné par défaut...)

Merci ! :)

# Re: menulist : liste des URLs, sélection de l'URL du Tab courant

Envoyé par : chrislabricole

Date : 30/10/2008 23:48

J'ai trouvé !

Voilà comment faire :

function onDialogLoad(){
var currentURLtab = window.opener.gBrowser.contentDocument.location.href;
var urlbar = '';
var list = document.getElementById('url_1');


var browsers = window.opener.document.getElementById('content').browsers; 
   var numBrowsers = browsers.length; 
for( var i=0; numBrowsers>i; i++ ){ 
   	var thisURI = browsers[i].currentURI.spec; 
	list.appendItem(thisURI, thisURI);
	
	if( thisURI == currentURLtab ){
		var selectedTab = i;
	}
}
list.selectedIndex = selectedTab;
}

Seul petit problème, c'est que si on ouvre par exemple 2 onglets de pages Google, il sélectionne la dernière entrée de la page Google même si l'onglet qui est en focus est le premier... ce n'est pas très grave mais bon...

Si il y a une solution, merci d'avance !

Et je te remercie de ton aide ;)

Cette chose m'aura apprit qu'il ne faut jamais se laisser influencer par le JavaScript comme dans une page Web ^^

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.