2011-09-12 2 views
1

Dans mon overlay.xul de Firefox Addon, puis-je accéder à son DOM en javascript? Je ne peux pas comprendre comment.Comment accéder au DOM de XUL Overlay

Merci d'avance.

+0

De script dans une page Web ou un script dans votre XPI? –

+0

@jeffamaphone XPI. – mattsven

+0

Avez-vous essayé document.getElementById()? –

Répondre

3

Une superposition est fusionnée avec le DOM du document auquel elle s'applique, elle ne possède pas de DOM propre. Donc, vous n'accédez pas au DOM de "l'overlay", vous accédez au DOM du document que vous avez superposé. Et cela se fait de la manière habituelle, par ex. via document.getElementById(). Vous devez toutefois prendre en compte une chose: ne jamais accéder au DOM avant que le chargement du document ne soit terminé, cela entraînera plusieurs problèmes (comme les autres superpositions qui ne s'appliquent pas). Donc, si votre superposition comprend un script, vous pouvez écrire:

window.addEventListener("load", function() { 
    // Window finished loading, now we can do something 
    var button = document.getElementById("my-extension-button"); 
    button.style.backgroundColor = "green"; 
}, false) 
+0

Merci. Savez-vous comment utiliser une balise '' dans une superposition? Je veux utiliser et manipuler un '' en arrière-plan. – mattsven

+0

@NeXXeuS: Voulez-vous dire le navigateur "normal"? Il est accessible sous la forme 'gBrowser' (une variable globale). Ou vous pouvez ajouter votre propre navigateur bien sûr, vous devez l'ajouter à votre superposition (choisissez un point d'insertion dans le document auquel vous appliquez la superposition). –

Questions connexes