IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XML/XSL et SOAP Discussion :

[XUL] cocher un radio button en javascript


Sujet :

XML/XSL et SOAP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 452
    Par défaut [XUL] cocher un radio button en javascript
    Bonjour,
    Je poste ici sans trop savoir si je suis absolument au bon endroit !
    Pardon d'avance aux modérateurs, je n'ai pas eu de réponse sur le forum dédié aux développements Firefox, peut-être ici ? ...

    Je développe une barre de recherche (CtrlF) si je n'ai pas trop de soucis avec la logique, j'en ai souvent avec l'interface graphique...
    Mon pb me semble rudimentaire, cocher un radio button en code (JS mais peu importe...)

    NB : je le fais sans pb sur des checkbox ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        <xul:checkbox anonid="find-case-sensitive"
        label="&PersocaseSensitiveCheckbox.label;"
        accesskey="&PersocaseSensitiveCheckbox.accesskey;"
        tooltiptext="&PersocaseSensitiveCheckbox.tooltip;"
        oncommand="_setCaseSensitivity(this.checked);"
        xbl:inherits="accesskey=matchcaseaccesskey"/>
        ...
        ...
        this.findBar.getElement('find-case-sensitive').checked = false;
        this.findBar.getElement('find-case-sensitive').checked = true;
    Mais sur un groupe de 2 radio button, je n'arrive pas à forcer une valeur :
    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
    22
    <xul:radiogroup anonid="radiogroup"
      class="radiogroup-container">
      <xul:hbox>
        <xul:radio anonid="radio-leftJustify"
          class="radio-leftJustify"
          label="&radio-leftJustify.label;"
          dir="reverse"
          accesskey="&radio-leftJustify.accesskey;"
          tooltiptext="&radio-leftJustify.tooltip;"
          oncommand="leftJustify(true);"
          value="false"
          checked="false"/>
    													    <xul:radio anonid="radio-rightJustify"
          class="radio-rightJustify"
          label="&radio-rightJustify.label;"
          accesskey="&radio-rightJustify.accesskey;"
          tooltiptext="&radio-rightJustify.tooltip;"
          oncommand="rightJustify(true);"
          value="false"
          checked="false"/>
        </xul:hbox>						 
    </xul:radiogroup>
    J'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        this.findBar.getElement('radio-leftJustify').checked = false;
        this.findBar.getElement('radio-rightJustify').checked = true;
     
        this.findBar.getElement('radiogroup'[0]).checked = false;
        this.findBar.getElement('radiogroup'[1]).checked = true;
     
        this.findBar.getElement('find-case-sensitive').setAttribute('checked', false);
        this.findBar.getElement('find-case-sensitive').setAttribute('checked', false);
     
        MEME N'IMPORTE QUOI :
        var rg = document.getElementById("radiogroup");
        rg[0].checked = false;
        rg[1].checked = false;
    et bien d'autres combinaisons, sans succès !

    Impossible de faire décoller la coche de (A), même au démarrage alors que les 2 buttons sont initalisés à "false".
    Je ne trouve pas la bonne syntaxe, auriez-vous une idée SVP ?
    Merci d'avance !

  2. #2
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Je fais extrapolation un peu ici comme je ne connais pas trop xul en tant que ff extension.

    D'abord, assignez differente valeur pour chaque radio, par exemple value-0 et value-1 successivement. Par contre, ici, vous assignez tous les deux comme false pour le radiogroup: vous pouvez le faire mais ce serait le premier radio qui prend priorité.

    Puis, vous pouvez instruire quel radio comme checked par donnant la valeur du radiogroup, par exemple le deuxième doit être sélectionné avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        this.findBar.getElement('radiogroup').value = 'value-1';
    ou bien via la propriété selectedIndex comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        this.findBar.getElement('radiogroup').selectedIndex = 1;
    ou bien plusieurs d'autres façons exactement comme pour html ordinnaire.

    Essayez avec le raisonnement dessus pour voir si ça vous donne des contrôles désirés.

  3. #3
    Membre Expert Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 452
    Par défaut
    Bonjour de bon matin, et surtout MERCI tsuji de vous intéresser à mon pb.

    Vos suggestions m'ont remis le pied à l'étriller, mais restent sans résultat.
    En fait par programme j'arrive bien à forcer les coches à "checked" mais cela n'a aucun effet sur l'interface graphique les boutons radios ne bougent pas.

    Je l'avais essayé, mais l'ai refait par acquis de conscience, d'attribuer les valeurs au départ dans la description :

    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
    22
     
    <xul:radiogroup anonid="radiogroup" class="radiogroup-container">
      <xul:hbox>
        <xul:radio anonid="radio-leftJustify"
          class="radio-leftJustify"
          label="&radio-leftJustify.label;"
          dir="reverse"
          accesskey="&radio-leftJustify.accesskey;"
          tooltiptext="&radio-leftJustify.tooltip;"
          oncommand="leftJustify(true);"
          value="0"
          checked="false"/>
        <xul:radio anonid="radio-rightJustify"
          class="radio-rightJustify"
          label="&radio-rightJustify.label;"
          accesskey="&radio-rightJustify.accesskey;"
          tooltiptext="&radio-rightJustify.tooltip;"
          oncommand="rightJustify(true);"
          value="1"
          checked="true"/>
      </xul:hbox>						 
    </xul:radiogroup>
    J'ai appliqué le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    CtrlF.log('DUF ---> onPageLoad function-'+ CtrlF.findBar.getElement('radiogroup').selectedIndex == 0 +'-=');
    CtrlF.log('DUF ---> onPageLoad function-'+ CtrlF.findBar.getElement('radiogroup').selectedIndex == 1 +'-=');
     
    CtrlF.log('DUF ---> onPageLoad function-'+ CtrlF.findBar.getElement('radio-leftJustify').checked +'-=');
    CtrlF.log('DUF ---> onPageLoad function-'+ CtrlF.findBar.getElement('radio-rightJustify').checked +'-=');
     
    CtrlF.findBar.getElement('radio-leftJustify').checked = false;
    CtrlF.findBar.getElement('radio-rightJustify').checked = true;
     
    CtrlF.log('DUF ---> onPageLoad function-'+ CtrlF.findBar.getElement('radio-leftJustify').checked +'-=');
    CtrlF.log('DUF ---> onPageLoad function-'+ CtrlF.findBar.getElement('radio-rightJustify').checked +'-=');
    1 - Je n'accède à aucune information par l'index sur le groupe (('radiogroup').selectedIndex).
    2 - Bien que les radios soient checked (initialisés dans l'interface), au premier test ils sont à "undefined".
    3 - J'arrive bien à forcer le checked par programme, derniers display "false" et "true" corrects.
    4 - L'interface graphique n'a pas bougée d'un poil, c'est toujours radio-leftJustify qui est "checked". Image 1

    Bon ce n'est pas catastrophique, cela ne concernera que les personnes qui utilisent simultanément les deux sens d'écriture, et seulement au boot de Firefox, car bien sûr les clics font bouger les coches... image 2
    Tout rentre dans l'ordre au premier clic, mais ce n'est pas cohérent au boot et surtout j'aurais bien aimé comprendre pourquoi !
    Au pire je remplacerai les radios par des checkbox et je gérerai le basculement par programme...

    S'il y a d'autres suggestions, je suis prêt à les appliquer consciencieusement
    Encore MERCI tsuji

  4. #4
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Okay. Il vaut mieux s'assurer ce qui est indiscutablement correct et ce qui est moins et bon à tester.

    Je ne suis pas sûr que
    CtrlF.findBar.getElement('<anonid>')
    va saisir le contrôle radiogroup ou d'autre: vous devriez le savoir mieux, sinon, vous en vous-assurez et c'est important.

    Le reste je ne peux que de faire un petit xul 'standalone' pour montrer ce que je ferrai si c'est mon projet. Explorez un peu le demo et allez découvrir les éléments utiles.
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <?xml version="1.0"?>
    <?xml-stylesheet href="chrome://global/skin" type="text/css"?>
    <!-- 
    	Note: Shortened and expanded on focusing to specific aspects. 
    	ref http://dxr.mozilla.org/mozilla-central/source/toolkit/content/tests/chrome/test_radio.xul
    -->
    <xul:window title="test" xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
     
    <!-- Note: I add this test onclick -->
    <xul:radiogroup id="radiogroup00" onclick="alert(this.value)">
      <xul:radio label="One" value="un"/>
      <xul:radio label="Two" value="deux"/>
      <xul:radio label="Three" value="trois"/>
    </xul:radiogroup>
    <xul:radiogroup id="radiogroup01">
      <xul:radio label="Un" value="one" accesskey="o"/>
      <xul:radio label="Deux" value="two" accesskey="t"/>
      <xul:radio label="Trois" value="three" selected="true"/>
    </xul:radiogroup>
     
    <!-- Notes: My addition -->
    <xul:button id="buttonid" label="checkingRadiogroup01"
        onclick="alert('group01 value: '+document.getElementById('radiogroup01').value);
            alert('group01 selectedItem.value: '+document.getElementById('radiogroup01').selectedItem.value);
            alert('group01 selectedIndex: '+document.getElementById('radiogroup01').selectedIndex);
            alert('This script is to change the checked item to two');
            document.getElementById('radiogroup01').value='two'" />
     
    <!-- test results are displayed in the html:body -->
    <body xmlns="http://www.w3.org/1999/xhtml" style="height: 100px; overflow: auto;"/>
     
    <!-- other test code goes here -->
    <script type="application/javascript">
    <![CDATA[
    ]]>
    </script>
    </xul:window>

  5. #5
    Membre Expert Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 452
    Par défaut
    Encore MERCI tsuji,
    Concernant le <annonid>, l'accès fonctionne pour tous les autres éléments.?!

    Je m'absente cet après-midi.
    J'exploiterai ce soir ce que vous m'avez envoyé et vous donnerai des infos demain matin.

    SUPER sympa de votre part !

  6. #6
    Membre Expert Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 452
    Par défaut
    Bonsoir,
    J'ai fait d'autres essais à la lumière du code que vous m'avez donné, toujours sans succès.

    J'accède toujours aux checkbox comme aux radios tant en lecture qu'en modification. Seul l'affichage ne reproduit pas les modifications effectuées en JavaScript et ce, seulement sur les radios.

    Je vais poursuivre le développement de l'addon Firefox, les fonctionnalités de recherche sont pour moi plus importantes que ce soucis d'affichage. Le module prendra en compte la totalité des alphabets codés en utf8, les écritures de droite à gauche, les mots entiers, la recherche par regexp... j'espère que les utilisateurs ne me feront pas un procès pour ce défaut d'affichage au démarrage seulement..

    Je soumettrai le pb à Mozilla lorsque je mettrai le module en ligne probablement en décembre.
    Si j'obtiens une solution, ou quelques infos je les posterai ici.
    Encore MERCI tsuji

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Je suis quand même un peu surpris de ce getElement(). Tu dis que ça marche avec d'autres, bon, soit, mais tu as trouvé ça où ? C'est peut-être un cas particulier.
    Normalement pour sélectionner à partir d'un id de ce genre, ça devrait être getAnonymousElementByAttribute() ou getElementsByAttribute() ou getElementById()

    Pour ce qui est de setter les valeurs et de pouvoir les relire bien qu'elles n'aient pas d'effet, ben, c'est du JavaScript. Tu as juste ajouté une nouvelle propriété à un objet quelconque qui ne s'y intéresse absolument pas, mais qui la garde puisque tu l'as mis là.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre Expert Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 452
    Par défaut
    MERCI thelvin pour ton intervention !

    Il est fort possible que je commette une bourde énorme car je débute dans ce dommaine.
    Ceci dit je n'ai pas de pb de logique dans le code, mon processeur modèle 1952 me donne encore satisfaction , mes plus gros pb sont d'interface graphique... Après 20 ans de CSS on est toujours pas foutu de colorier le fond d'une checkbox... enfin moi je n'ai pas trouvé à part des usines à gaz... et encore, donc je me contente de colorier le label !
    Bref :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CtrlF.findBar.getElementById('radio-leftJustify').checked = false;
    CtrlF.findBar.getElementById('radio-rightJustify').checked = true;
    CtrlF.log('DUF ---> onPageLoad function-'+ CtrlF.findBar.getElementById('radio-leftJustify').checked +'-=');
    CtrlF.log('DUF ---> onPageLoad function-'+ CtrlF.findBar.getElementById('radio-rightJustify').checked +'-=');
    Done :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Horodatage*: 17/09/2013 21:02:11
    Erreur*: TypeError: CtrlF.findBar.getElementById is not a function
    Fichier Source*: chrome://ctrlf/content/overlay.js
    Ligne*: 174
    Je suis parti d'un module existant, voici l'initialisation :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    var CtrlF = {
    	onLoad: function() {
    		CtrlF.log('-DEBUT---> onLoad function');
    		// initialization code
    		this.strings = document.getElementById('CtrlF-strings');
    		// set up pref observer
    		this.prefs = Components.classes['@mozilla.org/preferences-service;1']
    													 .getService(Components.interfaces.nsIPrefService)
    													 .getBranch('extensions.CtrlF.');
    		this.prefs.QueryInterface(Components.interfaces.nsIPrefBranch);
    		this.prefs.addObserver('', this, false);
    		this.deck = document.getElementById('CtrlF-deck');
    		this.findBar = document.getElementById('FindToolbar');
    		this.splitter = document.getElementById('CtrlF-splitter');
    		var win = document.getElementById('main-window');
    		if (win) {
    			// force creation of find bar in main window (FF4+)
    			this.findBar = window.gFindBar;
    			this.bottomBox = document.getElementById('browser-bottombox');
    			// add splitter
    			this.splitter = document.createElement('splitter');
    			this.splitter.setAttribute('id', 'CtrlF-splitter');
    			this.splitter.setAttribute('insertbefore', 'browser-bottombox');
    			this.splitter.setAttribute('hidden', 'true');
    			var vbox = this.bottomBox.parentNode;
    			this.splitter = vbox.insertBefore(this.splitter, this.bottomBox);
    			// add observer--must be *after* find bar exists
    			var observes = document.createElement('observes');
    			observes.setAttribute('element', 'FindToolbar');
    			observes.setAttribute('attribute', 'hidden');			
    			observes.setAttribute('onbroadcast', 'CtrlF.findBarToggled();');
    			var observerset = document.createElement('observerset');
    			observerset.setAttribute('id', 'CtrlF-observerset');
    			observerset.appendChild(observes);
    			observerset = win.appendChild(observerset);
    		}
    		else if (document.getElementById('viewSource')) {
    			this.bottomBox = document.getElementById('viewsource-bottombox');
    			// move find bar into bottom box
    			this.findBar = document.getElementById('appcontent').removeChild(this.findBar);
    			this.findBar = this.bottomBox.insertBefore(this.findBar, this.deck);
    		}
    		// add splitter event listener
    		this.splitter.addEventListener('mouseup', this.saveListHeight, false);
     
    		// apply prefs
    		this.toggleElement(this.findBar.getElement('find-label'),this.prefs.getBoolPref('showfindlabel')); //DUF
    		this.toggleElement(this.findBar.getElement('findbar-textbox'), this.prefs.getIntPref('fieldWidth')); //DUF
    		this.toggleElement(this.findBar.getElement('findbar-textbox'), this.prefs.getIntPref('fontsizeTextbox')); //DUF
    		this.toggleElement(this.findBar.getElement('counter'), this.prefs.getBoolPref('showcounter')); //DUF
    		this.toggleElement(this.findBar.getElement('current'), this.prefs.getBoolPref('showcurrent')); //DUF
    		this.toggleElement(this.findBar.getElement('highlight'), this.prefs.getBoolPref('showhighlight'));
    		this.toggleElement(this.findBar.getElement('find-case-sensitive'), this.prefs.getBoolPref('showcasse')); //DUF
    		this.toggleElement(this.findBar.getElement('start-word-lat'), this.prefs.getBoolPref('justify')); // DUF
    		this.toggleElement(this.findBar.getElement('end-word-lat'), this.prefs.getBoolPref('justify')); //DUF
    		this.toggleElement(this.findBar.getElement('start-word-ara'), !this.prefs.getBoolPref('justify')); //DUF
    		this.toggleElement(this.findBar.getElement('end-word-ara'), !this.prefs.getBoolPref('justify')); //DUF
     
    		this.toggleElement(this.findBar.getElement('radio-leftJustify'), this.prefs.getBoolPref('justifySurCtrlf')); //DUF
    		this.toggleElement(this.findBar.getElement('radio-rightJustify'),this.prefs.getBoolPref('justifySurCtrlf')); //DUF
     
    		if (this.prefs.getBoolPref('showclosebtn')) {
    			this.toggleElement(this.findBar.getElement('find-closebutton'), this.prefs.getBoolPref('closeradio'));
    			this.toggleElement(this.findBar.getElement('find-closebutton2'), !this.prefs.getBoolPref('closeradio'));
    		} else {
    			this.toggleElement(this.findBar.getElement('find-closebutton'), false);
    			this.toggleElement(this.findBar.getElement('find-closebutton2'), false);
    		}
    		// set list font size
    		this.deck.setAttribute('fontsize', this.prefs.getIntPref('fontsize'));
    		this.fbIgnoreToggle = false;
    		// store the state of the find bar
    		this.fbOpen = false;
    		this.inProgress = false;
    		// enable double-click on find bar to close it
    		if (this.prefs.getBoolPref('closedblclic'))
    			this.findBar.ondblclick = CtrlF.closeFindBar;
    		this.debug = true;
    		this.initialized = true;
     
    		// DUF openstartup et variables copies
    		this.findBar.setAttribute('fontsize', this.prefs.getIntPref('fontsizeCharBar')); //DUF
    		this.findBar.getElement('findbar-container').style.backgroundColor = this.prefs.getCharPref('colorCharBar'); //DUF
    		if (this.prefs.getBoolPref('openstartup')) this.findBar.open(0);
     
    		if (!this.prefs.getBoolPref('justify'))
    			this.findBar.getElement('findbar-textbox').classList.remove('textbox-Ara');
     
    		if (CtrlF.findBar.getElement('find-case-sensitive').hidden) {
    			this.findBar.getElement('find-case-sensitive').style.color = '#000000';
    			this.findBar.getElement('findbar-textbox').classList.remove('textbox-Casse-col');
    		}
     
    		if (this.findBar.getElement('find-case-sensitive').checked) {
    			this.findBar.getElement('find-case-sensitive').style.color = '#FFCC00';	
    			this.findBar.getElement('findbar-textbox').classList.add('textbox-Casse-col');							
    		}	else {
    			this.findBar.getElement('find-case-sensitive').style.color = '#000000';
    			this.findBar.getElement('findbar-textbox').classList.remove('textbox-Casse-col');
    		}
     
    		if (this.prefs.getBoolPref('justify')) {					
    			this.findBar.getElement('start-word-lat').hidden = false;
    			this.findBar.getElement('end-word-lat').hidden = false;
    			this.findBar.getElement('start-word-ara').hidden = true;
    			this.findBar.getElement('end-word-ara').hidden = true;						
    			this.findBar.getElement('findbar-textbox').classList.remove('textbox-Ara');
    		//	this.findBar.getElement('radio-rightJustify').checked = false;
    		//	this.findBar.getElement('radio-leftJustify').checked = true;
     
     
    		} else {					
    			this.findBar.getElement('start-word-lat').hidden = true;
    			this.findBar.getElement('end-word-lat').hidden = true;
    			this.findBar.getElement('start-word-ara').hidden = false;
    			this.findBar.getElement('end-word-ara').hidden = false;
    			this.findBar.getElement('findbar-textbox').classList.add('textbox-Ara');
    		//	this.findBar.getElement('radio-leftJustify').checked = false;
    		//	this.findBar.getElement('radio-rightJustify').checked = true;
     
     
    		}
    CtrlF.log('DUF ---> onPageLoad function-'+ CtrlF.findBar.getElement('radiogroup').selectedIndex == 0 +'-=');
    CtrlF.log('DUF ---> onPageLoad function-'+ CtrlF.findBar.getElement('radiogroup').selectedIndex == 1 +'-=');
     
    CtrlF.log('DUF ---> onPageLoad function-'+ CtrlF.findBar.getElement('radio-leftJustify').checked +'-=');
    CtrlF.log('DUF ---> onPageLoad function-'+ CtrlF.findBar.getElement('radio-rightJustify').checked +'-=');
     
    CtrlF.findBar.getElement('radio-leftJustify').checked = false;
    CtrlF.findBar.getElement('radio-rightJustify').checked = true;
     
    CtrlF.log('DUF ---> onPageLoad function-'+ CtrlF.findBar.getElement('radio-leftJustify').checked +'-=');
    CtrlF.log('DUF ---> onPageLoad function-'+ CtrlF.findBar.getElement('radio-rightJustify').checked +'-=');
     
    CtrlF.findBar.getElementById('radio-leftJustify').checked = false;
    CtrlF.findBar.getElementById('radio-rightJustify').checked = true;
     
    CtrlF.log('DUF ---> onPageLoad function-'+ CtrlF.findBar.getElementById('radio-leftJustify').checked +'-=');
    CtrlF.log('DUF ---> onPageLoad function-'+ CtrlF.findBar.getElementById('radio-rightJustify').checked +'-=');
     
     
    .........
      },
    Tous les autres éléments de la barre sont initialisés :
    .getElement('xxxx')
    et ça fonctionne, même plutôt bien, à me surprendre, à mon âge

    Trêve de plaisanterie, soit il y a une énorme bourde de ma part, ce qui est plus que probable, soit il y a un bug Mozilla, ce que je n'exclus (e) pas.

    Encore MERCI pour tes suggestions, je suis prêt à tout tester, tout remettre en cause... mais moi j'ai le temps, que ça ne bouffe pas tout le tien

  9. #9
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    La fonction getElement() parfois parâit comme une fonction définie dans la secteur implémentation du document xbl. Je me demande si celui pour le radiogroup est absent... Mais je dois dire je ne connais pas assez pour voir clairement le grand plan.

    Pourtant, je suggère un test rapide si ça donne quelque signale utile.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //à sa place, au lieu de
    //CtrlF.log('DUF ---> onPageLoad function-'+ CtrlF.findBar.getElement('radiogroup').selectedIndex == 0 +'-=');
    //mettons ça
    CtrlF.log('DUF ---> onPageLoad function-'+ document.getAnonymousElementByAttribute(this, 'anonid', 'radiogroup').selectedIndex == 0 +'-=');
    //etc...
    Qu'est-ce que ça donne?

  10. #10
    Membre Expert Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 452
    Par défaut
    Bonjour tsuji, encore MERCI,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Horodatage*: 18/09/2013 15:14:48
    Erreur*: TypeError: Value does not implement interface Element.
    Fichier Source*: chrome://ctrlf/content/overlay.js
    Ligne*: 175
    Je mets le code en image Ligne 175

    Néophyte, je ne suis pas de taille à comprendre ce mode d'accès

    La barre initiale <Ctrl-F> de Firefox ne comportant pas de radio button, j'ai aussi l'intuition qu'ils n'ont implémenté, OU MIEUX que JE NE SAIS PAS implémenter, le moyen de les gérer...

    [Edit 17:10]
    Il doit me manquer un xbl:inherits sur le radiogroup
    Quelques pistes m'ont amené ici et ici mais je ne sais pas exploiter ces infos !

    Je découvre xul, xbl, JS...depuis mi-juillet. Au départ c'était juste pour combler un besoin perso de recherche, mais me rendant compte que le résultat peut être utile j'essaye d'en faire qqc de présentable...
    N'y perdez pas votre temps, lorsqu'il sera en ligne il y a bien quelqu'un sur la planète qui nous fournira l'info manquante.

  11. #11
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    C'est domage que ça ne donne pas un message clair. Donc, avant que je dise de bêtisse, il vaut mieux que j'arrête là pour un bon moment.

    Je ne sais pas si vous avez référé le livre de N Macfarlane; sinon il est gratuit et disponible à télécharger ici
    http://www.e-booksdirectory.com/details.php?ebook=91
    Il serait utile pour ce genre de développement quoiqu'il date de 2003.

    Enfin, salut pour le moment et bonne continuation.

  12. #12
    Membre Expert Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 452
    Par défaut
    MERCI pour le lien tsuji

    Je ne connaissais pas, et vu que je débute malgré qu'il date un peu il me sera incontestablement d'une grande utilité !

    Pour le moment le petit inconvénient d'affichage ne me perturbe pas, je préfère passer mon temps sur les fonctionnalités de recherche...

    En tout état de cause si j'ai une info je la poserai ici.

    MERCI pour le temps que vous m'avez consacré et pour vos suggestions, ainsi qu'à thelvin.
    MD

  13. #13
    Membre Expert Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 452
    Par défaut Module CtrlF FindBar disponible
    Bonjour,
    En fait j'ai contourné le problème, le module Quick Locale Switcher fait çà très bien, et ça me simplifie la tâche !
    Le module CtrlF vérifié Windows7 & Linux, mais non encore validé est disponible Ici.

    Il n'est pas facile de trouver des infos pour le développement de modules Firefox, et je me sentais bien seul sur le forum dédié...
    Encore merci pour vos suggestions et votre disponibilité !

  14. #14
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Il n'est pas facile de trouver des infos pour le développement de modules Firefox, et je me sentais bien seul sur le forum dédié...
    Cela ne sens pas terrible, n'est-ce pas, comme un peu délaissé?! Bon courage et congras d'arriver là, le module CtrlF!

  15. #15
    Membre Expert Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 452
    Par défaut
    MERCI tsuji pour tes encouragements !
    J'ai toujours trouvé sur les forums de devellopez le 'petit' mot d'encouragement m'indiquant que cela valait la peine de partager nos questions et nos découvertes... même les miennes, qui peuvent faire sourire les prétendus 'spécialistes' de tous bords...
    Mais, question aux 'spécialistes' : moi qui ai commencé avec COBOL68, comment se fait-il que je sois obligé de développer une recherche 'Mot entier' sur une page web ? ... en séchant, non pas sur des problèmes de logique, mais sur des problèmes de CSS3... toujours pas foutu de colorier le fond d'une case à cocher !!! ???
    20 ans de CSS, que je découvre, pour en arriver là !
    Comment se fait-il que le minimum n’existe pas déjà, depuis le temps ? ...
    Sans vouloir alimenter la théorie du complot, cette question de fond me turlupine

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Windows Phone 7] empecher de cocher deux radio button situés dans deux stack panels différents
    Par glennog dans le forum Windows Phone
    Réponses: 3
    Dernier message: 11/04/2013, 13h15
  2. Réponses: 4
    Dernier message: 22/04/2011, 15h17
  3. cocher dans un radio button
    Par yakusa77 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 05/12/2008, 10h58
  4. [DOM] Radio button impossible à cocher sous IE
    Par *.Har(d)t dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 11/02/2008, 17h01
  5. [Débutant] radio button et BDD (javascript/PHP/MySQL)
    Par stringman62 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 12/02/2007, 19h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo