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 :

mozilla et javascript


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 8
    Par d�faut mozilla et javascript
    bonjour � tous.

    voila, j'ai un probl�me que je n'arrive pas � r�soudre pour l'instant.

    Firefox (derniere version) ne veut pas reconnaitre la fonction, pourtant, elle marche avec IE

    �a fait plusieures heures que je passe dessus, et apr�s x et x tests , rien � faire, j'esp�re que vous pourrez eclairer ma lanterne .

    Il sagit d'une fonction javascript pour envoyer des panneaux dans un forum.

    En fait, vaut mieux un exemple pour mieux expliquer, le voici ici, c'est un forum de tests ou les visiteurs peuvent poster.

    Forum de test

    donc, j'appelle les panneaux avec un textselect (Selectionnez vos smileys)

    <SELECT size="1" class=form
    onchange="envoieRequete(this.options[this.selectedIndex].value,'header');">

    <OPTION VALUE="" SELECTED>Selectionnez vos Smileys</OPTION>
    <OPTION VALUE="Srires.php">Rires Heureux Oeils Sauts</OPTION>
    <OPTION VALUE="SOui.php">Oui Non Moqueurs</OPTION>
    <OPTION VALUE="SAnges.php">Anges Demons</OPTION>
    <OPTION VALUE="SAmour.php">Amour</OPTION>
    <OPTION VALUE="SFete.php">F�te</OPTION>
    <OPTION VALUE="SMusique.php">Musique</OPTION>
    <OPTION VALUE="SConfus.php">Confus Etonn�s Mefiants</OPTION>
    <OPTION VALUE="SPleurs.php">Fatigu�s Pleurs tristes</OPTION>
    <OPTION VALUE="SColere.php">Col�re M�chants Violents</OPTION>
    <OPTION VALUE="pan.php">Panneaux</OPTION>
    <OPTION VALUE="SDefau.php">Par d�faut</OPTION>

    </SELECT>
    et ce textselect affiche les differentes pages de smileys dans un <div id="header">

    g�r� par une fonction:

    <script language="javascript">
    function envoieRequete(url,id)
    {
    var xhr_object = null;
    var position = id;
    if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
    else
    if (window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP");

    // On ouvre la requete vers la page d�sir�e
    xhr_object.open("GET", url, true);
    xhr_object.onreadystatechange = function(){
    if ( xhr_object.readyState == 4 )
    {
    // j'affiche dans la DIV sp�cifi�es le contenu retourn� par le fichier
    document.getElementById(position).innerHTML = xhr_object.responseText;
    }
    }
    // dans le cas du get
    xhr_object.send(null);
    }
    </script>
    Les smileys marchent bien (avec IE et FF), �a envoie le bbcode dans le post du message.
    Mais le probl�me vient avec les Panneaux, ou il sagit de renvoyer un input texte :

    <input type="text" size="18" maxlength="250" name="messagePan" value="Ecrivez votre texte ici" id="messagePan">

    <a href="javascript:;" onclick="envoiPan(7);Compter(formulaire.msg, formulaire.limitchar);">
    <img src="smileys/silly.gif" border="0" width="25" height="24"></a>
    et l�, IE envoie le BBcode, mais avec FF rien � faire !

    la fonction qui envoie les panneaux :
    <script language="javascript">
    function envoiPan(pann)
    {
    panneau = document.formulaire.messagePan.value;
    textselect=document.formulaire.msg;
    if(ie)
    {
    if(textselect.c)
    textselect.c.text=textselect.c.text + " " + (' [swf]url:pan/px') + pann + ('.swf?zonetxt=') + panneau + " " + ('largeur:350 hauteur:60 [/swf] ') + " ";
    else
    textselect.value += " " +('[swf]url:pan/px') + pann + ('.swf?zonetxt=') + panneau + " " + ('largeur:350 hauteur:60 [/swf] ') + " ";
    }


    else if(moz)
    {
    StartPos = textselect.selectionStart;
    EndPos = textselect.selectionEnd;
    LengthPos = EndPos - StartPos;

    textselect.value = textselect.value.substr(0,StartPos) + " " + (' [swf]url:pan/px') + pann + ('.swf?zonetxt=') + panneau + " " + ('largeur:350 hauteur:60 [/swf] ') + " " + textselect.value.substr(EndPos);

    }
    textselect.focus();
    document.formulaire.messagePan.value = " ";
    }
    </script>
    l'input text n'est pas directement plac� dans le <div> �a fait que FF ne reconnait pas la function envoiPan(pann)

    une id�e ?

  2. #2
    Membre �m�rite Avatar de Herode
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par d�faut
    A vue de nez, �a me parait logique puisque :
    1 - appel de fonction
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    onchange="envoieRequete(this.options[this.selectedIndex].value,'header');">
    2 - mise � jour du code HTML :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    document.getElementById(position).innerHTML = xhr_object.responseText;
    o� position re�oit comme valeur 'header'.
    3 - lecture :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    panneau = document.formulaire.messagePan.value;
    o� tu recherches un �l�ment nomm� 'messagePan' qui a �t� plac� dans l'�l�ment d'id 'header' et non pas dans un formulaire. Par cons�quent, la propri�t� formulaire.messagePan n'existe pas.

    Pour corriger �a, passer le bon id � la fonction envoieRequete (mais le formulaire n'a pas d'id pour l'instant...).

    Note que de toutes mani�res, le r�sultat n'est pas garanti :
    validation HTML

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 8
    Par d�faut

    je suis un bricolou

    je pensais pas avoir autant d'erreurs au niveau validation HTML

    IE transmet la requette , il est vraiment moins preci que FF.

    Merci pour ta r�ponse .

    Sinon, je fait comment exactement pour passer le bon id � la fonction envoieRequete ?
    et pour mettre un id sur le formulaire ?
    faut que je change quelque chose ici ? :

    <input type="text" size="18" maxlength="250" name="messagePan" value="Ecrivez votre texte ici" id="messagePan">

    <a href="javascript:;" onclick="envoiPan(7);Compter(formulaire.msg, formulaire.limitchar);">
    <img src="smileys/silly.gif" border="0" width="25" height="24"></a>
    ou tout simplement de renommer <div id="header"> en <div id="messagePan"> ?

    �a m'interresse, mais j'ai pas le niveau pour l'instant, alors, je veux juste que �a fonctionne sous FireFox.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 8
    Par d�faut


    j'y arrive pas
    pourtant la r�ponse semble logique.
    Mais dans ce cas, pourquoi IE trouve le chemin ?

  5. #5
    Membre �m�rite Avatar de Herode
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par d�faut
    Non, ma r�ponse n'�tait pas bonne. J'ai cru que ta fonction envoieRequete() remplissait le formulaire. En fait, elle remplit le panneau de smileys. Le probl�me n'est pas l�.

    Par contre, si tu actives ton d�boggeur javascript sous IE, tu verras que tu as des erreurs dans la fonction Compter(). Il est probable que IE absorbe cette erreur tandis que Mozilla (ou Opera, qui n'affiche pas non plus le r�sultat) arr�tent le traitement.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 8
    Par d�faut
    ok, j'ai cherch� de se c�t�.

    J'ai bien une fonction compter dans l'ent�te , la voici :

    <script language="javascript">
    <!--
    var wysiwyg = false;

    function Compter(Target, nomchamp)
    {
    var regexp = new RegExp("\\\r\\\n|\\\r|\\\n","gi");
    var HtmlLess = Target.value.replace(regexp,"");

    StrLen = HtmlLess.length
    if (StrLen > {%::LimiteLength%} && {%::LimiteLength%}>0)
    {
    Target.value = Target.value.substring(0,{%::LimiteLength%});
    CharsLeft = {%::LimiteLength%};
    }
    else
    {
    CharsLeft = StrLen;
    }
    nomchamp.value = CharsLeft;
    }
    -->
    </script>
    mais l� , c'est du chinois pour moi

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

Discussions similaires

  1. [mozilla] Transformation XSLT avec javascript...
    Par Spack dans le forum G�n�ral JavaScript
    R�ponses: 14
    Dernier message: 16/02/2011, 01h04
  2. javascript, GotoFrame et Mozilla
    Par mdelteil dans le forum Flash
    R�ponses: 3
    Dernier message: 13/07/2006, 12h35
  3. Dimensions cellules Mozilla perturb�es par javascript
    Par speedev dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 2
    Dernier message: 07/06/2006, 10h46
  4. javascript et mozilla
    Par lyon31 dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 27/03/2006, 14h19
  5. javascript mozilla
    Par zizou771 dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 12/01/2006, 11h25

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