2009-06-18 14 views
5

मैं फ़ायरफ़ॉक्स एडन पर काम कर रहा हूं और मुझे वर्तमान में मेन्यूपॉप तत्व में गतिशील रूप से मेन्यूटम्स जोड़ने की आवश्यकता है। मैंने मोज़िला डेवलपर सेंटर पर मूल रूप से सभी दृष्टिकोणों की कोशिश की है और उनमें से कोई भी काम नहीं करता है।एक एक्सयूएल फ़ायरफ़ॉक्स एडन ब्रेक में 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 का उपयोग करने की आवश्यकता है। यह पहले से ही एक एक्सयूएल दस्तावेज़ है इसलिए निर्माण को डिफ़ॉल्ट रूप से एक एक्सयूएल तत्व बनाना चाहिए। – MatrixFrog

+0

@Gryllida हाँ मैं एक नामस्थान में टैग डालने के लिए, या अधिक आम तौर पर, एक अलग नामस्थान वाले दस्तावेज़ में ऐसा लगता है। – MatrixFrog

उत्तर

5

क्या आप 100% सकारात्मक हैं कि document.getElementById ("mainDropdown") एक गैर-शून्य परिणाम लौटा रहा है?

अनुवर्ती के साथ करने के लिए टुकड़ों में यह टूट का प्रयास करें, और कुछ डिबगिंग कोड जोड़ें:

var dropDown = document.getElementById("mainDropdown"); 
if(dropDown) { 
    alert("dropDown found!"); 
    dropDown.appendChild(newMenuItem); 
} 
संबंधित मुद्दे