Xul: Dynamiquement alimenter une hbox avec vbox résultats en éléments endroits verticalement

StackOverflow https://stackoverflow.com/questions/4804287

Question

Je suis en train de remplir dans un temps d'exécution des éléments hbox avec des éléments de vbox en utilisant le code suivant:

Code Xul:

<hbox style="overflow:auto;" id="canvasContainer"> </hbox>

code Javascript:

  this.canvasContainer = document.getElementById("canvasContainer");
  for(var i = 0;i<k;i++){
    let imgCanvas = document.createElementNS("http://www.w3.org/1999/xhtml",'html:canvas');
    imgCanvas.setAttribute("width",200);
    imgCanvas.setAttribute("height",150);
    imgCanvas.getContext("2d").fillRect(0,0,200,150);   
    let canvasVbox = document.createElementNS("http://www.w3.org/1999/xhtml",'vbox');
    this.canvasContainer.appendChild(canvasVbox);

    let canvasLabel = document.createElement("label");
    canvasLabel.setAttribute("value",i);
    canvasLabel.setAttribute("flex",1);
    canvasVbox.setAttribute("flex",1);
    canvasVbox.appendChild(imgCanvas);
    canvasVbox.appendChild(canvasLabel);

    this.canvasContainer.appendChild(canvasVbox);
  }

Il en résulte la toile et les étiquettes sont affichées verticalement un sous l'autre. Connaissez-vous été le problème pourrait provenir? Se pourrait-il qu'il est impossible de remplir des zones dynamiquement? Est-ce un bogue dans Xulrunner? Avez-vous une idée d'une solution de contournement possible sans utiliser des grilles?

Était-ce utile?

La solution

Le problème était la ligne: laisser canvasVbox = document.createElementNS ( "http://www.w3.org/1999/xhtml", 'Vbox');

VBox ne fait pas partie de xhtml mais une partie de la syntaxe XUL, donc je avais juste besoin de remplacer « http://www.w3.org/1999/xhtml » par « http://www.mozilla.org/keymaster /gatekeeper/there.is.only.xul » et maintenant il fonctionne.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top