XUL: Динамически заполнение Hbox с Vboxes приводит к тому, что элементы помещаются вертикально

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

Вопрос

Я пытаюсь заполнить во время выполнения элементы Hbox с элементами Vboxes, используя следующий код:

XUL CODE:

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

Код 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);
  }

Это приводит к тому, что холст и этикетки отображаются вертикально один под другой. Вы знаете, что проблема могла возникнуть? Может ли быть так, что невозможно динамически заполнять коробки? Это ошибка в Xulrunner? У вас есть представление о возможном обходном пути без использования сетей?

Это было полезно?

Решение

Проблема была в строке: let canvasvbox = document.createElementns ("http://www.w3.org/1999/xhtml", 'vbox');

Vbox не является частью XHTML, а частью синтаксиса XUL, поэтому мне просто нужно было заменить «http://www.w3.org/1999/xhtml» на "http://www.mozilla.org/keymaster/gatekeeper/ есть. ИНГАЛИ.xUL "И теперь это работает.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top