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

JavaScript Discussion :

erreur m�thode non g�r�e sur l'objet document


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    52
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 52
    Par d�faut erreur m�thode non g�r�e sur l'objet document
    Bonjour,

    Dans un code javscript j'ai la ligne suivante :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    document.all.item(categ).options[i] = null;
    Cette ligne se trouve dans une fonction que j'appelle � deux endroits diff�rents du programme.
    Mon probl�me est que dans un cas la m�thode est ex�cut�e sans difficult�s et dans l'autre cas j'ai l'erreur "Cette objet ne g�re pas cette propri�t� ou cette m�thode".
    Dans les deux cas j'utilise IE7.

    Je ne comprends pas comment pour un m�me objet et pour un m�me navigateur, une m�thode peut un coup �tre g�r� et un coup ne pas l'�tre.

    La seul diff�rence que je vois dans ces deux cas est le contenu des variables mais je les ai v�rifi� et n'ai rien vu de probl�matique.

    Quelqu'un aurait-il une id�e de ce qu'il se passe ?

  2. #2
    Expert confirm�
    Avatar de le_chomeur
    Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2006
    Messages
    3 653
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 3 653
    Par d�faut
    peux tu poster le code complet ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    52
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 52
    Par d�faut
    Voici le code complet de la fonction. Elle permet de lier deux listes d�roulantes entre elles.

    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
    /*	
    	Cette fonction est appelée lorsqu'une liste permettant de choisir un type de catégorie est modifié.
    	Elle prend en paramètre :
    	- type_categ : l'ID de la liste contenant les types de catégories
    	- categ : l'ID de la liste contenant les catégories
    	- liaison : le type de liaison, c'est à dire pour quelle action de l'utilisateur la liaison est faite :
    		"interfacecateg" ou  "helpdesk"
     
    	Le code de cette fonction n'est pas dans l'ordre de son exécution car le javascript est en mode asynchrone.
    	La première partie du code (ordre d'exécution) se trouve à la fin et la deuxième partie au début.
    */
    function plugin_categoriesTitre_choix_table(type_categ,categ,liaison) {
    	var xhr = getXhr();
     
    	/* deuxième partie du code */
    	// On défini ce qu'on va faire quand on aura la rdu fichier ouvert dans la première partie
    	xhr.onreadystatechange = function(){
    		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok	
    		if(xhr.readyState == 4 && xhr.status == 200){
    			//on récupère la réponse
    			leselect = xhr.responseText;
     
    			var nom_navigateur = navigator.appName;
     
    			//le code pour traiter la réponse n'est pas le même pour internet explorer et pour d'autres navigateurs comme firefox
    			//IE ne pouvant pas utiliser innerHTML il faut utiliser d'autres fonctions ce qui oblige à adapter le formatage des données
    			if (nom_navigateur == "Microsoft Internet Explorer") {
    				//on commence par séparer les différentes informations reçues
    				tab = leselect.split(":");
    //modif
    alert("la2");
    alert(categ);
    alert(categ.length-1);
    				//on supprime les options qui sont déja dans la liste déroulante
    				for (var i=categ.length-1; i>=0; i--){
    					document.all.item(categ).options[i] = null;
    				}
    //modif
    alert("la3");
    				categ.selectedIndex = -1;
    //modif
    alert("da");
    				//on ajoute les nouvelles options
    				//sur la première ligne du tableau tab on a la valeur de la première option et sur la deuxième ligne on a le text de la première option, ainsi de suite pour les autres lignes et options d'où l'incrémentation de i+2 pour passer à l'option suivante sauf pour le <input ...> qu'on repère par le paramètre hidden et qui contient 3 paramètres
    				var i = 0;
    				while (i<tab.length-1){
    					if (tab[i]=="hidden") {
    						var elem = document.getElementById(categ);
    //modif	
    alert("truc");					
    alert(elem);
    						var iInput = document.createElement("input");
    						iInput.type = tab[i];
    						iInput.name = tab[i+1];
    						iInput.value = tab[i+2];
    						elem.appendChild(iInput);//modif
    alert("ici");
    						i = i+3;
    					} else {
    						var oOption = document.createElement("OPTION");
    				   		oOption.value=tab[i];
    						oOption.text=tab[i+1];
    						document.all.item(categ).add(oOption);
    						i = i+2;
    					}
    				}
    			} else {
    				//Pour firefox et autres on reçoit une <option ...> et un <input ...> tout prêt et on les insères avec la méthode suivante
    				document.getElementById(categ).innerHTML = leselect;
    			}
    		}
    	}
    	/* fin deuxième partie */
     
    	/* première partie du code*/
    	// Ici on ouvre le fichier qui contient le code qui va remplir la liste déroulante des catégories en fonction de la table qui aura été choisie. Le fichier dépend de l'interface sur laquelle se trouve la liste. Le troisième argument de la fonction open indique que le javascript est en mode asynchrone.
    	if ((liaison == "interfacecateg")||(liaison == "interface_suivi_recherche")) {
    		xhr.open("POST","/glpi/plugins/categoriesTitre/inc/plugin_categoriesTitre_listeCategTitre.function.php",true);
    	} else if (liaison == "helpdesk") {
    		xhr.open("POST","/glpi/plugins/categoriesTitre/inc/plugin_categoriesTitre_listeCategEnfant.function.php",true);
    	}
    	// ne pas oublier ça pour le post
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
     
    	//on envoie la valeur qui a été sélectionné dans la liste déroulante en fonction de l'interface ou se trouve la liste. Cette valeur est envoyé au fichier qu'on a ouvert précédemment 
    	sel = document.getElementById(type_categ);
    	if ((liaison == "interfacecateg")||(liaison == "interface_suivi_recherche")) {
    		table = sel.options[sel.selectedIndex].value;
    		xhr.send("table_choisi="+table);
    	} else if (liaison == "helpdesk") {
    		//le "t" de parent a été volontairement enlevé car le mettre provoquait l'erreur "Non implémenté \n" avec IE7
    		paren = sel.options[sel.selectedIndex].value;
    		xhr.send("parent_choisi="+paren);
    	}
    	/* fin première partie */
    }

  4. #4
    Expert confirm�
    Avatar de le_chomeur
    Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2006
    Messages
    3 653
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 3 653
    Par d�faut
    ok ok
    je te conseille de regarder ce script pour ajouter des options dans une liste :

    http://javascript.developpez.com/faq...js#SelectListe

    et surtout d'�viter le document.all ;-)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    52
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 52
    Par d�faut
    Effectivement ca marche beaucoup mieux avec cette m�thode.

    Cela dit ca commence � �tre p�nible, c'est la 3e ou 4e m�thode que je teste et � chaque fois ca semble marcher jusqu'au moment ou ca ne marche plus. Je commence � comprendre pourquoi IE est tant critiqu�.

    Merci pour ton aide.

  6. #6
    Expert confirm�
    Avatar de le_chomeur
    Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2006
    Messages
    3 653
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 3 653
    Par d�faut
    le probl�me ne vient pas forc�ment de IE , mais plut�t de la fa�on dont les objets sont g�r�s ...
    a l'heure actuelle ( sous IE8 ) il n'y a que peu de diff�rence avec les autres navigateur ^^ ( et non je ne suis pas pro IE )

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Erreur : propri�t� ou m�thode non g�r�e par l'objet
    Par Ptikir dans le forum Macros et VBA Excel
    R�ponses: 2
    Dernier message: 03/09/2009, 16h31
  2. R�ponses: 0
    Dernier message: 22/02/2008, 11h30
  3. Propri�t� ou m�thode non g�r�e par cet objet
    Par abennis dans le forum Macros et VBA Excel
    R�ponses: 3
    Dernier message: 22/06/2007, 17h59
  4. propri�t� ou m�thode non g�r�e par cet objet
    Par Elstak dans le forum VBA Access
    R�ponses: 2
    Dernier message: 27/05/2007, 21h23
  5. R�ponses: 2
    Dernier message: 22/05/2007, 17h08

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