2009-06-18 35 views
5

Tôi đang làm việc trên trình bổ sung Firefox và hiện tại tôi cần phải tự động thêm menuitems vào phần tử menupopup. Tôi đã thử về cơ bản tất cả các phương pháp tiếp cận trên Trung tâm dành cho nhà phát triển Mozilla và không có phương pháp nào trong số đó hoạt động.appendChild trong một tiện ích bổ sung Firefox XUL

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); 
    } 
} 

Mã này ngắt tại lệnh appendChild. Bất kỳ ý tưởng tại sao?

+1

có một thông báo lỗi? – geowa4

+0

Tôi không nghĩ bạn cần sử dụng createElementNS. Nó đã là một tài liệu XUL nên createElement chỉ cần tạo một phần tử XUL theo mặc định. – MatrixFrog

+0

@Gryllida yes Tôi nghĩ vậy, hay nói chung hơn, để chèn các thẻ vào một không gian tên, vào một tài liệu có một không gian tên khác. – MatrixFrog

Trả lời

5

Bạn có 100% tích cực rằng document.getElementById ("mainDropdown") đang trả về kết quả không null không?

Cố gắng phá vỡ nó xuống thành từng miếng, và thêm một số mã gỡ lỗi để theo dõi cùng:

var dropDown = document.getElementById("mainDropdown"); 
if(dropDown) { 
    alert("dropDown found!"); 
    dropDown.appendChild(newMenuItem); 
} 
Các vấn đề liên quan