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 :

Problème avec firefox


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2003
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Décembre 2003
    Messages : 15
    Par défaut Problème avec firefox
    Voila maintenant quelques semaine que je cherhce un peu partout, mais je ne trouve pas de solution dans tous les forum que j'ai parcourue.
    Voici mon problème :
    sous Firefox, après un appel via XmlHttpRequest, je remplie certain champs de saisi du formulaire appelant, et au final je donne le focus explicitement à un champ bien particulié, le problème et que firefox me renvoie une erreur :

    [Exception... "'Permission refusée de modifier la propriété XULElement.selectedIndex' when calling method: [nsIAutoCompletePopup::selectedIndex]" nsresult: "0x8057001e (NS_ERROR_XPC_JS_THREW_STRING)" location: "JS frame :: http://dev.ultralog.yob/driver/sales...=445946&type=1 :: anonymous :: line 4804" data: no]

    Quelqu'un aurait-il une idée ??

    Cela provoque une petite instabilité dans ma page et par moment tous zape.

    Si on pouvait m'aider, ce serait cool.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    cf post "problème de sécurité "....
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre averti
    Inscrit en
    Décembre 2003
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Décembre 2003
    Messages : 15
    Par défaut
    ldcarpathes dit dans "problème de securité"
    "il vous faut modifier la propriété de configuration signed.applets.codebase_principal_support. Cela nécessite donc l'intervention de l'internaute pour effectuer cette modification.

    Pour les versions récentes de Firefox, vous pouvez la modifier en tapant dans le navigateur l'url about:config, puis en double-cliquant sur signed.applets.codebase_principal_support. Mettez la valeur true.

    Une autre méthode est de modifier à la main le fichier pref.js situé le profil de l'utilisateur. Cherchez la ligne :

    user_pref("signed.applets.codebase_principal_support", false);

    et remplacez la par :

    user_pref("signed.applets.codebase_principal_support", true);

    Attention, il ne faut pas que Mozilla soit en cours d'exécution lors de cette opération. ?
    "
    Mais cela ne résout pas mon problème, je ne suis pas en mesure de modifier la valeur signed.applets.codebase_principal_support sur le poste client .
    comment faire autrement ???

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    change la syntaxe d'appel de l'objet ...
    tu y fais référence comment dans ton code ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre averti
    Inscrit en
    Décembre 2003
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Décembre 2003
    Messages : 15
    Par défaut
    document.nom_du_formulaire.nom_du_champs.focus();

    J'ai toujours fait de cette façon, dans les cas où je ne passe pas par une méthode faisant appel à AJAX, je n'ai pas d'erreur.

    Si tu a mieux, je suis preneur !..

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    je ne vois pas en quoi AJAX peut interférer sur le focus ... ?
    le champs en question il a été ajouté dynamiquement ou simplement renseigné par la requete axaj ...
    ta connection ajaxe est elle fermée lors de la tentative de focus ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre averti
    Inscrit en
    Décembre 2003
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Décembre 2003
    Messages : 15
    Par défaut
    le champs en question il a été ajouté dynamiquement ou simplement renseigné par la requete axaj
    Le champs en question est créé dynamiquement, mais avant l'appel l'appel AJAX, par :
    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
    function NewLigne()
    		{
    			document.getElementById('update_on').style.display = 'none';
    			document.getElementById('NewLigne').style.display = 'none';
    			document.getElementById('SuppLin').style.display = 'none';
    			document.getElementById('cancel_update').style.display = 'none';
    			document.getElementById('valid_update').style.display = 'none';
    			document.getElementById('ValidNewLigne').style.display = 'block';
     
    			if (document.lines.onglets.value == "sales_modif_det_commandeC")
    			{
    				document.lines.onglets.value = "sales_valide_add_det_commandeC";
    				document.lines.NewLines.value = "1";
    			}
     
    			var i = (NbLig == 0) ? NbLigOrig : NbLig - NbLigOrig;
    			Newnumlig = Newnumlig + 1
    			var lastLign = "document.lines.numart" + i;
    			lastLign = eval(lastLign);
    			if (lastLign && lastLign.value == "")
    			{
    				return;
    			}
     
    			var l = document.getElementById('TableauLinge').insertRow(NbLig + 1);
     
    			l.insertCell(0).innerHTML = '<INPUT type="hidden" name="Newrefcli' + Newnum + '" value=""><INPUT type="hidden" name="Newpxrev' + Newnum + '" value=""><INPUT type="hidden" name="Newfranco' + Newnum + '" value=""><INPUT type="hidden" name="Newtva' + Newnum + '" value=""><INPUT type="hidden" name="Newspec' + Newnum + '" value=""><INPUT type="hidden" name="Newcomp_spec' + Newnum + '" value=""><INPUT type="hidden" name="Newtypobj' + Newnum + '" value=""><INPUT type="hidden" name="Newfng' + Newnum + '" value=""><INPUT type="hidden" name="Newtaudev' + Newnum + '" value=""><INPUT type="hidden" name="Newlargeur' + Newnum + '" value=""><INPUT type="hidden" name="Newhauteur' + Newnum + '" value=""><INPUT type="text" name="Newnumart' + Newnum + '" value="" size="7" maxlength="6" onblur="CursorWait();SendNart(this.value,document.lines,' + Newnum + ');" />';
    			l.insertCell(1).innerHTML = '<INPUT type="text" name="Newrefcom' + Newnum + '" value="" size="7" maxlength="30" onfocus="refcomFocus = 1;" onblur="refcomFocus = 0;CursorWait();SendRefCom(this.value,document.lines,' + Newnum + ');" />';
    			l.insertCell(2).innerHTML = '<INPUT type="text" name="Newdesign' + Newnum + '" value="" size="61" maxlength="60" />';
    			l.insertCell(3).innerHTML = '<INPUT type="text" name="Newqtecde' + Newnum + '" value="" size="10" maxlength="64" onkeypress="process_keypress();" onkeyup="if (this.value != \'\'){change_qteNEW(' + Newnum + ');}" />';
    			l.insertCell(4).innerHTML = '&nbsp;';
    			l.insertCell(5).innerHTML = '&nbsp;';
    			l.insertCell(6).innerHTML = '<INPUT type="text" name="Newpxvent' + Newnum + '" value="" size="8" maxlength="64" onkeypress="process_keypress();" onkeyup="if (this.value != \'\'){S_totalNEW(' + Newnum + ')}" />';
    			l.insertCell(7).innerHTML = '<INPUT type="text" name="Newtauxrem' + Newnum + '" value="" size="4" maxlength="64" onkeypress="process_keypress();" onkeyup="if (this.value != \'\'){S_totalNEW(' + Newnum + ')}" onblur="NewLigne();" />';
    			l.insertCell(8).innerHTML = '<INPUT type="text" name="Newstot' + Newnum + '" value="" size="8" />';
    			l.insertCell(9).innerHTML = '<INPUT type="text" name="Newnumlig' + Newnum + '" value="" size="3" />';
     
    			var FocusLig = "document.lines.Newnumart" + Newnum;
    			FocusLig = eval(FocusLig);
    			FocusLig.focus();
     
    			NbLig++;
    			Newnum++;
     
    			return;
    		}
    ensuite on appel AJAX, est le focus est donnée au champs en question avant la fin de l'appel, dont voici le code si ça peut t'aider :
    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
    144
    145
    146
    function SendNart(numart,f,init)
    		{
    			if (numart == "")
    			{
    				CursorDefault();
    				return false;
    			}
     
    			NbLigOrig = NbLigOrig + 10;
    			refcli[numart] = 0;
     
    			//var timer=setTimeout("CursorWait()",1);
     
    			var numartTrans = numart + "," + document.lines.numcli.value + "," + document.lines.type.value;
    				NAJAX_obj.findartforaddtodoc(numartTrans, function(result) 
    				{
    					var refcom = "f.Newrefcom" + init;
    					refcom = eval(refcom);
    					var design = "f.Newdesign" + init;
    					design = eval(design);
    					var qtecde = "f.Newqtecde" + init;
    					qtecde = eval(qtecde);
    					var pxvent = "f.Newpxvent" + init;
    					pxvent = eval(pxvent);
    					var tauxrem = "f.Newtauxrem" + init;
    					tauxrem = eval(tauxrem);
    					var stot = "f.Newstot" + init;
    					stot = eval(stot);
    					var numlig = "f.Newnumlig" + init;
    					numlig = eval(numlig);
    					var refcli = "f.Newrefcli" + init;
    					refcli = eval(refcli);
    					var pxrev = "f.Newpxrev" + init;
    					pxrev = eval(pxrev);
    					var franco = "f.Newfranco" + init;
    					franco = eval(franco);
    					var tva = "f.Newtva" + init;
    					tva = eval(tva);
    					var spec = "f.Newspec" + init;
    					spec = eval(spec);
    					var comp_spec = "f.Newcomp_spec" + init;
    					comp_spec = eval(comp_spec);
    					var typobj = "f.Newtypobj" + init;
    					typobj = eval(typobj);
    					var fng = "f.Newfng" + init;
    					fng = eval(fng);
    					var taudev = "f.Newtaudev" + init;
    					taudev = eval(taudev);
    					var largeur = "f.Newlargeur" + init;
    					largeur = eval(largeur);
    					var hauteur = "f.Newhauteur" + init;
    					hauteur = eval(hauteur);
    					var unite = document.getElementById('TableauLinge').rows[NbLig - 1].cells[4];
    					var stkdispo = document.getElementById('TableauLinge').rows[NbLig - 1].cells[5];
     
    					var count_prod = f.count_prod;
     
    					// Incrementation de count_prod pour enregistrement
    					count_prod.value = parseInt(count_prod.value) + 1;
     
     
    					// La méthode renvoie un tableau construit comme suit
    					// numart,typobj,ref,pr_fab,franco,dv,codtaux,spec,taudev,refcom,refcli,design,stk_dispo,libcourt,pxcatal,tauxrem,remcli,remqte);
     
    					if (result[0] == null || result[0] == '')
    					{
    						var Cnumart = "f.Newnumart" + init;
    							Cnumart = eval(Cnumart);
    						alert("<?PHP echo $translate["noArtWhereFound"]; ?>");
    						Cnumart.value = '';
    						Cnumart.focus();
    						CursorDefault();
    						timer = null;
    						return true;
    					}
     
    					if (result[7] == 1)
    					{
    						result[18] = prompt("Veuillez spécifier la largeur du produit N° " + result[0], "0");
    						result[19] = prompt("Veuillez spécifier la hauteur du produit N° " + result[0], "0");
    						result[11] = result[11] + " " + result[18] + " X " + result[19];
    						largeur.value = result[18];
    						hauteur.value = result[19];
    					}
     
    					if (result[10] != null)
    					{
    						alert('Prix net pour ce client.');
    						refcli[numart] = 1;
    					}
    					dv = result[5];
    					tva.value = result[6];
    					franco = result[4];
    					remcli = result[16];
    					refcom.value = result[9];
    					design.value = result[11];
    					qtecde.value = 0;
    					pxvent.value = result[14] ? result[14] : 0;
    					unite.innerHTML = result[13];
    					stkdispo.innerHTML = result[12];
    					tauxrem.value = result[15] ? result[15] : 0;
     
    					remqte[numart] = new Array();
     
    					for (var y = 0; y < result[17].length; y++)
    					{
     
    						remqte[numart][y] = {qtemini:result[17][y]["qtemini"], 
    											qtemaxi:result[17][y]["qtemaxi"], 
    											prem:result[17][y]["prem"]};
    					}
     
    					stot.value 	 = parseFloat(qtecde.value) * parseFloat(pxvent.value);
    					numlig.value = NbLigOrig;
     
    					qtecde.value = '';
    					if (numart != '9999' && numart != '9998')
    					{
    						qtecde.focus();
    					}
    					else
    					{
    						if (numart == '9999')
    						{
    							qtecde.style.display = 'none';
    							pxvent.style.display = 'none';
    							tauxrem.style.display = 'none';
    							design.value = "";
    							stot.onblur = function () { NewLigne(); };
    							design.focus();
    						}
    						else if (numart == '9998')
    						{
    							qtecde.style.display = 'none';
    							stot.style.display = 'none';
    							tauxrem.style.display = 'none';
    							numlig.onblur = function () { NewLigne(); };
    							pxvent.focus();
    						}
    					}
    					result = null;
    					timer = null;
    					CursorDefault();
    				});
     
    		}
    NAJAX_obj.findartforaddtodoc = Appel AJAX.

    qtecde.focus(); juste avant la fin.

  8. #8
    Expert confirmé

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Par défaut
    Citation Envoyé par svendeville
    document.nom_du_formulaire.nom_du_champs.focus();

    J'ai toujours fait de cette façon, dans les cas où je ne passe pas par une méthode faisant appel à AJAX, je n'ai pas d'erreur.

    Si tu a mieux, je suis preneur !..
    http://javascript.developpez.com/faq...rm.input.acces

    Mais à mon avis, ça ne résoudra pas ton problème (mais ça sera toujours mieux)

  9. #9
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Il s'agit souvent la d'un problème indiquand qu'un élément de la page ou du navigateur est en cours de création/destruction, et donc l'accès est refusé (partiellement ou entièrement)

    Il peut s'agir d'objet parent et/ou contenu dans l'objet pour lequel on tente d'acceder à la propriété

    Quelle est l'effet de cette erreur sur ta page ?
    Si il n'y en a pas, laisse tomber...

  10. #10
    Membre averti
    Inscrit en
    Décembre 2003
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Décembre 2003
    Messages : 15
    Par défaut
    Citation Envoyé par denisC
    http://javascript.developpez.com/faq...rm.input.acces

    Mais à mon avis, ça ne résoudra pas ton problème (mais ça sera toujours mieux)
    Effectivement cela ne résout pas mon problème, mais tu as quand même grandement raison denis et je t'en remerci, je vais tout de même modifier mon JS, ça poura servir par la suite.

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

Discussions similaires

  1. Problème avec Firefox
    Par ThinKiT dans le forum Mise en page CSS
    Réponses: 13
    Dernier message: 14/12/2007, 23h08
  2. Problème avec firefox
    Par yamissa dans le forum Intégration
    Réponses: 6
    Dernier message: 08/08/2007, 15h26
  3. [Conception] problème avec firefox sur les champs input type="file"
    Par maverick56 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 9
    Dernier message: 11/05/2007, 10h57
  4. [Prototype] Problème avec firefox
    Par supergp dans le forum Bibliothèques & Frameworks
    Réponses: 8
    Dernier message: 17/12/2006, 22h58
  5. innerHTML problème avec Firefox
    Par AsTeR_ dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/09/2006, 09h59

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