Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# RDF et javascript

Envoyé par : Alain B

Date : 25/10/2005 20:58

Bonjour,

Tout d'abord je précise que je débute en XUL :-)

J'ai quelques soucis avec les mélanges de RDF, templates et javascript.

En fait je crée une interface d'un cédérom. Les éléments de l'interface sont alimentés par un fichier RDF. Un des éléments est un bouton qui renvoi vers une page web. L'URL de cette page web est dans le RDF. J'appelle le site par le code suivant :

<button label="&cdprof.site_web;" oncommand="charger_web('?lien');"    />

Et j'ai un message d'erreur sur "charger_web". A priori je ne peux pas y mettre ma variable RDF. Donc comment faire ?

Merci pour votre aide,

A+ Alain

PS : Voici le code complet de la page :

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://cdprof/skin" type="text/css"?>
<!DOCTYPE window SYSTEM "chrome://cdprof/locale/cdprof.dtd">
<window
   id="math-window"
   title="Maths"
   orient="horizontal"
   xmlns:rdf="http://www.cdprof.com/rdf#"
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
   
<script src="javascript/cdprof.js"/>
  <vbox style="overflow:-moz-scrollbars-vertical;">
  
     <vbox class="fond_window" datasources="chrome://cdprof/content/logiciels.rdf" ref="http://www.cdprof.com/Maths">


<template>
	
	<rule>
		<conditions>
			<content uri="?uri" />
			<member container="?uri" child="?logiciel" />
			<triple subject="?logiciel"
				predicate="http://www.cdprof.com/rdf#nom"
				object="?nom" />
			<triple subject="?logiciel"
				predicate="http://www.cdprof.com/rdf#lien"
				object="?lien" />
			<triple subject="?logiciel"
				predicate="http://www.cdprof.com/rdf#description"
				object="?description" />
			<triple subject="?logiciel"
				predicate="http://www.cdprof.com/rdf#utiliser"
				object="?utiliser" />
			<triple subject="?logiciel"
				predicate="http://www.cdprof.com/rdf#installer"
				object="?installer" />
		</conditions>
		<action>
		<vbox uri="?logiciel">
		<hbox  maxwidth="600px" align="center">
		<label class="nom" value="?nom" />
		<spacer flex="1" />
       		<button label="&cdprof.site_web;" oncommand="charger_web('?lien');" />
		<button label="&cdprof.utiliser;" disabled="?utiliser" />
		<button label="&cdprof.installer;" disabled="?installer" />
		</hbox>
		<spacer />
		<description class="description" maxwidth="600px"><textnode value="?description" /></description>	
		<spacer />
		</vbox>
		</action>
     		</rule>
	
     </template>
</vbox>
</vbox>
   
</window>

# Re: RDF et javascript

Envoyé par : Utilisateur anonyme

Date : 26/10/2005 22:59

Ajoute l'attribut value au button et affecte lui la valeur recherchée ?lien. Ce qui donne :

<button label="&cdprof.site_web;" value="?lien" oncommand="this.value" />

# Re: RDF et javascript

Envoyé par : Alain B

Date : 27/10/2005 00:42

Merci d'avoir répondu à mon interrogation.

Cela m'a permis de progresser mais ne résoud pas mon problème. L'attribut "value" semble ne pas exister pour "button". En effet j'obtiens l'erreur javascript suivante : "reference to undefined property this.value"

Par contre si je mets :

<button label="?lien" oncommand="window.open(this.label);" />

cela fonctionne. Mais j'ai alors un bouton avec le lien en clair. Ce n'est pas ce que je souhaite et donne souvent des boutons à rallonge.

Donc si quelqu'un à une idée ... je suis preneur :-)

A+ Alain

# Re: RDF et javascript

Envoyé par : hhf

Date : 27/10/2005 01:19

Comme ceci ca devrait marcher. les attributs non declaré dans la 'dtd' ne sont pas accessible par les racourcis utilise getAttribute("").

 <button label="&cdprof.site_web;" monAttr="?lien" oncommand="action(event)" />
<script>
<[[DATA[
   function action(event) {
      var eSrc=event.target;
      var monAttr=eSrc.getAttribute("monAttr");
   }
]]>
</script>

# Re: RDF et javascript

Envoyé par : Utilisateur anonyme

Date : 27/10/2005 08:34

Remplace l'attribut "value" inexistant dans l'objet button par l'attribut "tooltiptext" qui te permettra d'afficher le lien sur le bouton lorsque l'utilisateur passera sur le bouton.

<button label="&cdprof.site_web;" tooltiptext="?lien" oncommand="this.tooltiptext" />

J'ai besoin de ton fichier rdf pour te proposer d'autres solutions

# Re: RDF et javascript

Envoyé par : Alain B

Date : 27/10/2005 11:34

Top génial les gars, ca marche et c'est encore mieux que ce que je voulais au départ !

J'ai finallement mis cela :

<button label="&cdprof.site_web;" tooltiptext="?lien" oncommand="window.open(this.getAttribute('tooltiptext'));" />

Encore merci,

Alain

# Re: RDF et javascript

Envoyé par : Utilisateur anonyme

Date : 27/10/2005 17:19

Stop les bidouillages, voila ta solution, il suffit d'ajouter ^ derrière ta variable :

<button label="&cdprof.site_web;" oncommand="charger_web('?lien^');" />

cf : http://xulfr.org/xulplanet/xultu/templat(..)

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.