Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Inclure plusieurs fois un overlay

Envoyé par : thbz

Date : 28/01/2006 13:36

Bonjour à tous,

Peut-on inclure plusieurs fois le même overlay dans une fenêtre XUL ?

1) Je définis un bouton dans un fichier overlay :

<overlay ...>
  <button id="mon-bouton" onclick="alert(42)" />
</overlay>

2) Je veux utiliser ce bouton à plusieurs endroits sur la même fenêtre XUL :

<window>
  <button id="mon-bouton" label="A" />
  <button id="mon-bouton" label="B" /> <!-- ERREUR -->
  <button id="mon-bouton" label="C" /> <!-- ERREUR -->
</window>

Le code est incorrect car deux éléments ne peuvent pas avoir le même id dans une fenêtre (cf spec) (en pratique, les boutons s'affichent mais seul le premier des trois boutons récupère l'action "onclick" définie dans l'overlay). Suis-je obligé de passer par XBL pour faire ce genre de chose ?

Merci pour votre aide.

# Re: Inclure plusieurs fois un overlay

Envoyé par : hhf

Date : 28/01/2006 14:22

ben comme tu dis on ne peut avoir plusieur 'id' identique sur la meme 'page' ... tu dois trouvé autre chose, un xbl me semble adapté, les tuto, sont bien fait, lance toi, tu verras c'est facile.

# Re: Inclure plusieurs fois un overlay

Envoyé par : thbz

Date : 28/01/2006 14:54

Merci pour la réponse. Je trouve juste un peu dommage que l'overlay utilise l'id, mais peut-être n'ai-je pas encore compris toute la philosophie de l'overlay par rapport à XBL. On peut en effet faire la même chose en XBL :

<?xml version="1.0" encoding="UTF-8"?>
  <xbl:bindings id="testxbl" xmlns:xbl="http://www.mozilla.org/xbl" 
     xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">    
    <xbl:binding id="testxblbutton">
      <xbl:content>
        <button xbl:inherits="label" onclick="alert(42)" />
      </xbl:content>
   </xbl:binding>
</xbl:bindings>

C'est juste un peu plus lourd et il faut modifier deux fichiers (XBL + CSS)...

# Re: Inclure plusieurs fois un overlay

Envoyé par : hhf

Date : 28/01/2006 15:04

ben en fait pour moi, les overlays, c'est juste pour alléger les pages, imagine un enorme interface, de beaucoup de ligne, ben grace au overlays, tu decoupes ton interface en plusieur fichier, ce qui facilite le developpement.

# Re: Inclure plusieurs fois un overlay

Envoyé par : laurentj

Date : 28/01/2006 19:34

Dans le futur Gecko 1.9 (Firefox 3.0), ils sont en train de penser à améliorer les obverlay : on pourra indiquer un chemin XPath plutôt qu'un id. Donc en théorie on pourra inclure un overlay plusieurs fois ;-)

# Re: Inclure plusieurs fois un overlay

Envoyé par : thbz

Date : 28/01/2006 19:48

Mon problème est que j'essaie de faire du MDI et je ne suis pas sûr que XUL prévoie grand'chose à ce sujet. Concrètement, je veux afficher simultanément plusieurs enregistrements d'une base de données, chacun dans un onglet.

Finalement, je crois que je vais m'en sortir avec cloneNode() : je fais un onglet-modèle invisible et je le clone chaque fois que l'utilisateur ouvre un nouvel enregistrement dans un nouvel onglet. C'est un peu un hack (je fais du renommage d'id à la volée pour éviter les conflits lorsque j'accède aux champs), mais ça a l'air de bien marcher.

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.