2009-06-18 8 views
5

私はFirefoxのアドオンで作業していますが、現在menuitemsをmenupopup要素に動的に追加する必要があります。私は基本的にすべてのアプローチをMozillaデベロッパーセンターで試してみましたが、どちらも機能しません。XUL FirefoxアドオンのappendChildが壊れます

function populateDropdown() { 
    var counter = 0; 
    for (var key in services) { 
     var newMenuItem = document.createElementNS("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul", "menuitem"); 
     newMenuItem.setAttribute("label", services[key]['title']) 

     document.getElementById("mainDropdown").appendChild(newMenuItem); 
    } 
} 

このコードは、appendChildコマンドでブレークします。なぜどんなアイデア?

+1

は、エラーメッセージが表示されましたか? – geowa4

+0

createElementNSを使う必要はないと思います。既にXULドキュメントですので、createElementはデフォルトでXUL要素を作成するだけです。 – MatrixFrog

+0

@Gryllidaはい私はそうだとか、一般的には、ある名前空間内のタグを別の名前空間を持つ文書に挿入すると思います。 – MatrixFrog

答えて

5

document.getElementById( "mainDropdown")がnull以外の結果を返すことが100%肯定的ですか?

フォロー沿っする部分に分解してみて、いくつかのデバッグコードを追加します。

var dropDown = document.getElementById("mainDropdown"); 
if(dropDown) { 
    alert("dropDown found!"); 
    dropDown.appendChild(newMenuItem); 
} 
関連する問題