2011-01-26 4 views
0
私は次のコードを使用して、実行時にvboxes要素とのhbox要素を移入しようとしている

XUL:動的垂直要素で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); 
    } 

これは、キャンバスと垂直方向に一つの他の1の下に表示されているラベルになります。問題はどこから来たのか知っていますか?ボックスを動的に取り込むことができないことがありますか? Xulrunnerのバグですか?グリッドを使用せずに回避策を考えていますか?

答えて

2

問題は次の行です。 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 "となりました。

+0

+1私はw3.orgのURLを読むと、そんなことを考えました。また、あなた自身の答えを見つけて共有することができるときは、常に良いです:) –

+0

彼はしませんでした。私は彼の質問に答えました。 – Neil

+0

はい、Neilはmozillaメーリングリストでこの質問に答えました。私はちょうどここで解決策を共有したいと思った。 :) – revers

関連する問題