Plantage page web avec la console d'ouverte
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

Plantage page web avec la console d'ouverte



  1. #1
    matthieu2

    Plantage page web avec la console d'ouverte


    ------

    Bonjour,

    Je travail sur un projet MVC géré avec Struts. J'utilise eclipse pour développer et IE comme navigateur

    J'ai une liste déroulante contenant des paramètres que l'utilisateur peux choisir. Lors du click sur un des parametres de la liste, ce paramètre est "copié" dans une liste d'arrivée:
    Nom : screenshot_06.png
Affichages : 81
Taille : 24,0 Ko


    Voici le code de ma jsp qui correspond au "Axe cause principale" de l'image ci dessus:
    Code:
    <!--AXE CAUSE PRINCIPALE -->
    <tr>
        <td width="100px" align="center">
            <app:message keyDisplay="${messageKeyDisplayMode}" key="re.searchProduitCritForm.axeCausePrincipale" />
        </td>
        <td>
            <select id="fromAxeCausePrincipale" property="axisPrincipalCause" class="FormTextSelect" onchange="addPrincipalCauses(this, selOpAxeCauseFrench, selOpAxeCauseEnglish);">
                <c:if test="${not empty  axisLabels}">
                    <option value="none">
                        ----------
                    </option>
                    <c:forEach items="${axisLabels}" var="axis">
                        <option value="${axis.label}">
                            ${axis.value}
                        </option>
                    </c:forEach>
                </c:if>
            </select>
        </td>
        <td class="TabLeft" width="30%" align="center">
            <app:message keyDisplay="${messageKeyDisplayMode}" key="re.searchProduitCritForm.remove" />
            <br>
            <html:button property="temp" styleClass="FormButtonLittle" styleId="delSelQualif" onclick="removeAxisPrincipalCause(selOpAxeCauseFrench);">
                <app:message keyDisplay="${messageKeyDisplayMode}" key="re.searchProduitCritForm.removeSelect" />
            </html:button>
            <br>
            <html:button property="temp" styleClass="FormButtonLittle" styleId="delAllQalif" onclick="removeAll(selOpAxeCauseFrench); removeAll(selOpAxeCauseEnglish);">
                <app:message keyDisplay="${messageKeyDisplayMode}" key="re.searchProduitCritForm.removeAll" />
            </html:button>
        </td>
        <td width="30%" align="left">
            <select id="selOpAxeCauseFrench" class="FormTextSelect" size="3" multiple="true" />
            <html:hidden styleId="selOpAxeCauseEnglish" property="axisPrincipalCause" name="gpqsSearchProduitForm" />
        </td>
    </tr>
    Ici le select id="selOpAxeCauseFrench" me permet de récupérer les label en français des paramètres. Ils servent uniquement à l'affichage pour l'utilisateur.
    Dans mon html:hidden je stocke les valeurs en anglais pour aller requeter ma base de donnée où les paramètres sont en anglais.


    Voici les scripts pour les fonctions removeAxisPrincipalCause, removeAll et addPrincipalCauses:
    Code:
    function addPrincipalCauses(_srceList, _destListFr, _destListEn) {
        if (_srceList.options[_srceList.selectedIndex].value != 'none') {
            appendListTV (_destListFr, _srceList.options[_srceList.selectedIndex].label, _srceList.options[_srceList.selectedIndex].label);
            appendListTV (_destListEn, _srceList.options[_srceList.selectedIndex].value, _srceList.options[_srceList.selectedIndex].value);
        }
    }
    
    function appendListTV (theSelection, text, value) {  
        var found = false;
        var index=0;
        while (!found && index < theSelection.length) {
            if (theSelection.options[index].text == text) {
                found = true;
            } else {
                index++;
            }
        }    
        if (found == false) {
            theSelection[theSelection.length] = new Option(text, value);    
        }
     }	
    
    
    function removeAll (theList) {
        var index = theList.options.length-1;
        while (index >= 0) {
            theList.options[index] = null;
            index--;
        }
    }  
    
    function removeAxisPrincipalCause(theList){
        if (theList.options.selectedIndex>=0)  {  
    	 document.gpqsSearchProduitForm.selOpAxeCauseEnglish.options[theList.selectedIndex] = null;
    	 theList.options[theList.selectedIndex] = null;
    	 if (theList.length > 0) {
    	     theList.options[0].selected = true;
    	 }
        }else {
    	  alert("No item selected");
        }	
    }
    J'arrive à ajouter des paramètres et à supprimer toute la liste d'arriver avec le bouton "Suppr. tous".

    Comme la fonction removeAxisPrincipalCause ne fonctionne pas, je souhaite débuger avec la console pour comprendre ce qui se passe.

    CEPENDANT, lorsque la console de IE est ouverte et que je souhaite ajouter un paramètre ou bien supprimer toute la liste j'ai une erreur js qui dit:
    "selOpAxeCauseFrench" est indéfini

    C'est la que je ne comprend pas étant donné que console fermée j'arrive à les ajouter et à supprimer toute la liste.

    J'ai testé sur Chrome et même avec la console d'ouverte cela fonctionne bien.

    Si quelqu'un à une idée de piste où creuser ?

    Cordialement,

    -----
    Dernière modification par matthieu2 ; 22/07/2016 à 08h20.

  2. #2
    invite5b70e721

    Re : Plantage page web avec la console d'ouverte

    Bonjour,

    c'est quoi le type de variable que tu passe dans les fonctions dans ton jsp ... tu veux passer l'id de l’élément select n'est ce pas? alors je pense que tu doit le passer comme chaîne de caractere

  3. #3
    matthieu2

    Re : Plantage page web avec la console d'ouverte

    Bonjour,

    Oui je lui passe l'ID de mon select.

    J'ai tenté de mettre l'id en dur sur la fonction mais le problème est équivalent.

    Je me demande si ce n'est pas par ce qu'il s'agit d'un taglib...
    Dernière modification par matthieu2 ; 22/07/2016 à 08h59.

  4. #4
    invite5b70e721

    Re : Plantage page web avec la console d'ouverte

    essayer de debuger thelist dans la fonction removeall .. tu debug avec console.log ou console.table???

  5. A voir en vidéo sur Futura
  6. #5
    matthieu2

    Re : Plantage page web avec la console d'ouverte

    Re,

    Citation Envoyé par docteurphilip Voir le message
    tu debug avec console.log ou console.table???
    Je suis débutant en programmation donc je suis pas sur de comprendre cette question. C'est bien sur eclipse ça?

    Si oui alors ni l'un ni l'autre (du moins pour tout ce qui concerne les jsp) car je les débug sur le navigateur


    J'ai une autre erreur:
    Impossible d’obtenir la propriété « length » d’une référence null ou non définie

    Apparament mon html:hidden est null

    Lors du débug: theList prend bien l'id de mon select (selOpAxeCauseFrench)
    Dernière modification par matthieu2 ; 22/07/2016 à 09h13.

  7. #6
    matthieu2

    Re : Plantage page web avec la console d'ouverte

    Sorry pour le double post

    Fonction removeAxisPrincipalCauses, sur la ligne :
    document.gpqsSearchProduitForm .selOpAxeCauseEnglish.options[theList.selectedIndex] = null;

    document.gpqsSearchProduitForm .selOpAxeCauseEnglish prend bien l'id de mon html:hidden soit selOpAxeCauseEnglish mais j'ai l'erreur suivante:

    Impossible de définir la propriété « 0 » d’une référence null ou non définie

  8. #7
    matthieu2

    Re : Plantage page web avec la console d'ouverte

    Bonjour,

    Apparemment cela vendrait d'un pb de compatibilité.

    J'était en edge pour le début. En passant sur IE10 ça passe

    Merci pour votre aide

  9. #8
    invite5b70e721

    Re : Plantage page web avec la console d'ouverte

    Bonjour,

    alors il ne fonctionne pas sou edge ?? pourquoi tu n'utilise pas chrome?? tu ne rencontreras pas de probleme de compatibilité

  10. #9
    matthieu2

    Re : Plantage page web avec la console d'ouverte

    Bonjour,

    Citation Envoyé par docteurphilip Voir le message
    pourquoi tu n'utilise pas chrome??
    Par ce que mon client utilise uniquement IE

  11. #10
    Bluedeep

    Re : Plantage page web avec la console d'ouverte

    Citation Envoyé par docteurphilip Voir le message
    pourquoi tu n'utilise pas chrome?? tu ne rencontreras pas de probleme de compatibilité
    Affirmation gratuite.

Discussions similaires

  1. Pub mais aucune page internet d'ouverte ???
    Par invite655b9112 dans le forum Sécurité et malwares : désinfectez votre machine
    Réponses: 2
    Dernier message: 15/07/2010, 11h15
  2. Insérer une page php avec variables (ex : page.php?nom=jean) grâce au javascript
    Par invite991c0955 dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 21/05/2005, 17h37
  3. plantage avec antivir
    Par invite7ec69dd4 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 6
    Dernier message: 05/06/2004, 12h08
  4. plantage avec GAME XP
    Par inviteef1e491a dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 25/03/2004, 15h48