Bonjour,
Dans un module Firefox je voudrais modifier dynamiquement un ficher.css associé.
- J'arrive bien à attribuer dynamiquement une classe existante sur la textbox.
- Je n'arrive pas à récupérer la classe dans le fichier.css pour la modifier :
La textbox dans le fichier.xml :
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <xul:textbox anonid="findbar-textbox" class="textbox findbar-find-fast" oninput="updatecount(true);" tooltiptext="&findbar-textbox.tooltip;" xbl:inherits="flash"/> <xul:checkbox anonid="start-word" class="findbar-start-word tabbable" label="&start-word.Checkbox.label;" dir="reverse" accesskey="&start-word.Checkbox.accesskey;" tooltiptext="&start-text.Checkbox.tooltip;" oncommand="startWord(true);" disabled="true"/>
Le fichier.css
Code css : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 /* findbar-textbox */ .textbox { -moz-binding: url('chrome://CtrlF/content/binding.xml#findbar-textbox'); border-radius: 3px; border-style: solid; border-color: #73B3FF; border-width: 1px; background-image: -moz-linear-gradient(to top, #FFFF99, #FFFFFF); margin: 0px; } .textbox-startWord-col { background-image: -moz-linear-gradient(to right, #CC66CC, #FFFFFF); } .textbox-endWord-col { background-image: -moz-linear-gradient(to left, #CC66CC, #FFFFFF); }
La méthode :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <method name="startWord"> <parameter name="aEnable"/> <body><![CDATA[ CtrlF.log('DUF Binding.xml startWord method'); var color = Components.classes["@mozilla.org/preferences-service;1"] .getService(Components.interfaces.nsIPrefBranch) .getCharPref("ui.textHighlightBackground"); if (this.getElement("start-word").checked) { this.getElement("start-word").style.color = color; this.getElement("findbar-textbox").classList.add("textbox-startWord-col"); } else { this.getElement("start-word").style.color = '#000000'; this.getElement("findbar-textbox").classList.remove("textbox-startWord-col"); } // jusque là c'est OK. Après je ne sais pas récupérer la classe var myObject = document.getElementById("textbox"); CtrlF.log('DUF Binding.xml myObject='+ myObject +'-='); var getStyle = document.styleSheets.item("textbox"); CtrlF.log('DUF Binding.xml myObject='+ getStyle +'-='); ]]></body> </method>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 var myObject = document.getElementById("textbox"); CtrlF.log('DUF Binding.xml myObject='+ myObject +'-='); RETOURNE NULLJ'ai fait pas mal d'essais, j'ai trouvé quelques exemples sur du html, xml classique... qui semblent fonctionner, la doc xul de mozilla n'est pas très étendue sur le sujet : 1 2 3 ... rien de tout çà fonctionne puisque je n'arrive même pas à récupérer la classe !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 var getStyle = document.styleSheets.item("textbox"); CtrlF.log('DUF Binding.xml myObject='+ getStyle +'-='); Là J'AI BIEN un STYLE MAIS JE NE SAIS PAS COMMENT L'UTILSER
A terme je voudrais modifier dynamiquement .textbox-startWord-col & .textbox-endWord-col
MERCI D'avance !
Partager