Frage

Ich versuche, in Laufzeit und Hbox -Elemente mit Vboxes -Elementen mit dem folgenden Code zu fopulieren:

XUL -Code:

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

JavaScript -Code:

  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);
  }

Dies führt dazu, dass Leinwand und Etiketten vertikal unter dem anderen angezeigt werden. Weißt du, dass das Problem von kommen könnte? Könnte es sein, dass es nicht möglich ist, Kästchen dynamisch zu füllen? Ist es ein Fehler in Xulrunner? Haben Sie eine Vorstellung von einer möglichen Problemumgehung, ohne Netze zu verwenden?

War es hilfreich?

Lösung

Das Problem war die Zeile: let canvasvbox = document.createelementns ("http://www.w3.org/1999/xhtml", 'vbox');

Vbox ist nicht Teil von XHTML, sondern Teil der XUL -Syntax. Daher musste ich nur "http://www.w3.org/1999/xhtml" durch "http://www.mozilla.org/keymaster/gatekeeper/ ersetzen da.is.only.xul "und jetzt funktioniert es.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top