2009-06-18 1 views
5

Firefox 부가 기능을 사용하고 있으며 현재 menuitems를 menupopup 요소에 동적으로 추가해야합니다. 기본적으로 모질라 개발자 센터에서 모든 접근법을 시도했지만 그 중 아무 것도 작동하지 않습니다.XUL Firefox addon의 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); 
}