2009-11-18 11 views
0

façon XUL:Pourquoi ce code XUL fonctionne-t-il et l'équivalent Javascript ne fonctionne pas?

<toolbar id="PersonalToolbar"> 
    <toolbarbutton 
    id="Testing-Doit-Button2" 
    class="bookmark-item pagerank" 
    tooltiptext="Do it!" 
    oncommand="testing_doit();" 
    /> 
</toolbar> 

javascript chemin:

function createBookmarkItem() { 
    const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; 
    var item = document.createElementNS(XUL_NS, "toolbarbutton"); 
    item.setAttribute("id", "Testing-Doit-Button2"); 
    item.setAttribute("class", "bookmark-item pagerank"); 
    item.setAttribute("tooltiptext", "Do it!"); 
    item.setAttribute("oncommand", "testing_doit();"); 
    return item; 
} 
function placeBookmarkItem() { 
var toolbar = document.getElementById("PersonalToolbar"); 
var button = createBookmarkItem(); 
toolbar.appendChild(button); 
} 
placeBookmarkItem(); 

La façon XUL montre un bouton. La méthode Javascript affiche un bouton lorsque je vais sur le shell JavaScript de l'extension du développeur d'extension, puis sur enumerateWindows(), puis sur chrome: //browser/content/browser.xul, puis tapez le code, puis appuyez sur Entrée. Le Javascript ne montre pas un bouton quand j'inclus button.js dans button.xul. Pourquoi?

+0

Vous pouvez reformuler le titre de la question. Il semble que vous demandiez quelle est la différence entre Javascript et XUL. – pc1oad1etter

+0

il est 1ooking 1ike un problème de 1oad, 1o1 –

+0

Une partie du code que je ne cite pas ici et qui a eu une erreur commise fonctionne pas la partie du code que je cité ici et qui n'a pas eu une erreur. –

Répondre

0

Une partie du code que je ne cite pas ici et qui a eu une erreur commise fonctionne pas la partie du code que je cité ici et qui n'a pas eu une erreur. Jetez un oeil à "I add 10 functions to a code, I don’t even call any of them, but the code stops working!" pour plus d'informations.

+0

Alors ça marche quand même? – lithorus

+0

Dans l'ordinateur d'une autre personne, c'est le cas. Dans le mien, ce n'est pas le cas. Jetez un oeil à http://stackoverflow.com/questions/1770728/getelementbyidbookmarksbarcontent-appendchildbutton-is-interpreted-as-getel pour plus d'informations. –

+0

Maintenant, c'est dans mon ordinateur! Jetez un oeil à http://stackoverflow.com/questions/1783176/i-try-to-add-a-new-button-to-firefox-but-its-the-old-button-that-gets-added pour Plus d'information. –

0

Vous devez placer le placeBookmarkItem(); dans l'événement documents onload. Le javascript est exécuté avant que le document ne soit en place. Sinon, placez l'élément <script/> juste avant l'élément </window> à la fin du document.

+0

Il y a une superposition à la place d'un élément de fenêtre. –

Questions connexes