Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Template XUL avec source XML - disparition attribut id

Envoyé par : Onii

Date : 27/04/2010 15:48

Bonjour à tous,

je suis actuellement en train de développer une barre d'outils pour Firefox. Une partie de l'interface doit être générée dynamiquement. Les infos sont à extraire d'un fichier XML situé sur un serveur distant. J'ai donc découvert les templates XUL, ceux-ci étant maintenant utilisables avec une source de données XML.

Voici le code de l'interface XUL correspondant à ma section dynamique :

<toolbarbutton id="demoRSS" type="menu" onclick="LoadAllRSS()"    label="Actualites" tooltiptext="Flux RSS (Actualites)">
  <menupopup id="MP_Menu-RSS" datasources="chrome://demo/content/config.xml" ref="*" querytype="xml">      
  <template>
	  <query expr="content/FluxRSS/Flux">
		  <assign var="?title" expr="@title"/>
		  <assign var="?identifiant" expr="concat('MP_', @title)"/>
		  <assign var="?lienRSS" expr="concat('LoadXml(&quot;', 'MP_', @title, '&quot;, &quot;', Link/./text(), '&quot;)' )"/>  
	  </query>
	  <action>
		<menu uri="?" label="?title" tooltiptext="?lienRSS" onmouseover="?lienRSS">
			  <menupopup id="?identifiant" name="?identifiant" label="txt_test">
			  </menupopup>
		</menu>
	  </action>
  </template>
  </menupopup>
</toolbarbutton>

Le fichier XML (config.xml) utilisé comme datasource est de la forme suivante :

<config>
<content>
	<FluxRSS>
		<Flux title="Clubic.com">
			<ImgMini></ImgMini>
			<Link>http://www.clubic.com/internet/actualites.rss</Link>
		</Flux>
		<Flux title="Developpez.com">
			<ImgMini></ImgMini>
			<Link>http://www.developpez.com/index/rss</Link>
		</Flux>
		<Flux title="Programmez.com">
			<ImgMini></ImgMini>
			<Link>http://www.programmez.com/rss/rss_actu.php</Link>
		</Flux>
	</FluxRSS>
...

Je vous expose maintenant mon problème :

les élements <menupopup id="?identifiant" name="?identifiant" label="txt_test"></menupopup> générés disposent bien d'un attribut name fixé à la bonne valeur, d'un label mais plus de l'id. Cela est des plus problématique étant donné que c'est de celui-ci dont j'ai besoin pour réaliser le peuplement des menupopop (par les fils RSS) via des fonctions javascript ! La fonction LoadXml('MP_Developpez.com', 'www.fluxrssblabla.com') est bien appelée, les paramètres bien transmis mais un coup d'oeil dans le DOM (avec DOM inspector par exemple) permet de voir que l'attribut id n'est pas crée (mais que tous les autres le sont bien), pourtant l'affichage de "?identifiant" est le bon comme vérifiable dans le DOM à l'attribut name du menupopup.

Je souhaiterai ainsi voir de quelle manière je pourrais fixer un attribut 'id' à la valeur 'MP_TitreDuFlux' correspondante. J'ai pu voir que l'attribut uri permettait de fixer un id unique et généré par le template "row39" par exemple. Est-ce un mécanisme associé qui empeche la création d'un attribut id dans une balise située dans un template XUL afin d'éviter tout doublon ? Il me semble étrange que le développeur ne puisse fixer les valeurs qu'il souhaite, à sa charge ensuite de ne pas créer deux elements avec le meme id, me trompe-je ? D'autres balises ou options pour le <template> permettent-elles d'affecter des id ou tout du moins de ne pas voir disparaitre les attributs id ?

En vous remerciant d'avance, Onii.

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.