繁体   English   中英

Xul:用vbox动态填充hbox会导致元素垂直放置

[英]Xul: Dynamically populating a hbox with vboxes results in elements places vertically

我试图在运行时使用以下代码用vboxes元素填充hbox元素:

Xul代码:

<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/ there.is.only.xul”,现在可以使用了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM