2011-01-26 20 views
0

我嘗試使用下面的代碼在運行時填充縱向方框元素的hbox中的元素:XUL:動態填充與元素縱向方框結果的橫向盒垂直宿

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中的錯誤嗎?你有沒有使用網格可能的解決方法的想法?

回答

2

問題是行: let canvasVbox = document.createElementNS(「http://www.w3.org/1999/xhtml」,'vbox');

VBox不是xhtml的一部分,而是xul語法的一部分,所以我只需要用「http://www.mozilla.org/」取代「http://www.w3.org/1999/xhtml」。 keymaster/gatekeeper/there.is.only.xul「,現在它工作。

+0

+1當我閱讀w3.org網址時,我曾經這麼想過。另外,當你能夠找到你自己的答案並分享時,它總是很好:) – 2011-01-27 15:46:10