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 :

explication d'un script pour modification


Sujet :

JavaScript

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2004
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 152
    Points : 87
    Points
    87
    Par défaut explication d'un script pour modification
    Bonjour,

    Etant débutante en javascript, j'aurais besoin de quelques éclaircissements pour pouvoir modifier un script.

    J'ai trouvé un script qui me permet de simuler le défilement de la balise marquee.
    Toutefois celui-ci permet uniquement de mettre un message fixe. J'aimerais pouvoir le modifier pour mettre un texte issu de ma base de données.

    Voici le script en question
    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
     
    <script type="text/JavaScript" language="JavaScript">
    	function scroll(n){
    		var blanc=" ";
    		var texte = "Ceci est une démonstration de l'alternative par JavaScript de la balise propriétaire [marquee] (Internet Explorer) afin d'obtenir le même effet sur tous les navigateurs actuels.";
     
    		var scrolling_text = blanc + texte;
    		scrolling_text = scrolling_text.substring(n,scrolling_text.length);
    		document.message.scroll_text.value = scrolling_text;
     
    		if(scrolling_text.length > 0) n ++;
    		else n = 0;
     
    		s = n;
    		n = setTimeout("scroll(s)", 100);
    	}
    </script>
    Pour afficher ce code, il faut actuellement ajouter dans son code html le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form name = "message"><input name = "scroll_text" size = "39"></form>
    J'aimerais donc appeler la fonction en passant ma variable texte issue de ma BDD.

    Est-il possible de mettre un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form name = "message"><input name = "scroll_text" onload=scroll(mon_texte) size = "39"></form>
    et d'adapter la fonction scroll avec quelque chose comme
    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
     
    <script type="text/JavaScript" language="JavaScript">
    	function scroll(n, mon_texte){
    		var blanc=" ";
     
    		var scrolling_text = blanc + mon_texte;
    		scrolling_text = scrolling_text.substring(n,scrolling_text.length);
    		document.message.scroll_text.value = scrolling_text;
     
    		if(scrolling_text.length > 0) n ++;
    		else n = 0;
     
    		s = n;
    		n = setTimeout("scroll(s)", 100);
    	}
    </script>

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 915
    Points
    79 915
    Par défaut
    Bonjour,

    Il n'y pas d'onload sur <input>. Il me semble qu'il doit trainer quelque part dans la page un appel à la fonction scroll.
    Vous pouvez sans doute modifier cet appel mais faites attention lors du passage des paramètres:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function scroll(n1, mon_text1)
    {
       //...
    }
     
    //différents appels:
    var n2;
    var mon_text2;
    scroll(n2); //n1 = n2 et mon_text1 = ''
    scroll(n2, mon_text2); //n1 = n2 et mon_text1 = mon_text2
    scroll(mon_text2); //n1 = mon_text2 et mon_text1 = ''

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2004
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 152
    Points : 87
    Points
    87
    Par défaut
    Après réflexion, j'ai mis ceci, mais j'ai un problème pour récupérer la valeur que je passe à mon input

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <form name = "message"><input id="scroll_text"  name = "scroll_text" size = "39" value="Ceci est une démonstration de l'alternative par JavaScript de la balise propriétaire  [marquee] (Internet Explorer) afin d'obtenir le même effet sur tous les navigateurs actuels"></form>
    et pour ma fonction, je remplace juste la ligne var texte
    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
     <script type="text/JavaScript" language="JavaScript">
    		function scroll(n){
    			var blanc=" ";
    			//var texte = "Ceci est une démonstration de l'alternative par JavaScript de la balise propriétaire        [marquee] (Internet Explorer) afin d'obtenir le même effet sur tous les navigateurs actuels.";
     
                            // est-ce que la syntaxe est juste pour récupérer la valeur de l'input scroll_text ?
    			var texte = document.getElementById('scroll_text').value;
     
    			var scrolling_text = blanc + texte;
    			scrolling_text = scrolling_text.substring(n,scrolling_text.length);
    			document.message.scroll_text.value = scrolling_text;
     
    			if(scrolling_text.length > 0) n ++;
    			else n = 0;
     
    			s = n;
    			n = setTimeout("scroll(s)", 100);
    		}
    	</script>
    Mais ça ne me retourne rien...

  4. #4
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 915
    Points
    79 915
    Par défaut
    C'est normal, il faut que la fonction scroll soit lancée quelque part:


  5. #5
    Membre régulier
    Inscrit en
    Novembre 2004
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 152
    Points : 87
    Points
    87
    Par défaut
    je ne comprends pas, je modifie uniquement la variable texte.

    Si je la laisse par défaut le script fonctionne.
    Si je remplace en disant de récupérer la valeur de l'input elle ne fonctionne plus.

    Je ne comprends pas où et comment je dois appeler cette fonction.

    Pourriez-vous m'expliquer SVP.

    Merci d'vance

  6. #6
    Membre régulier
    Inscrit en
    Novembre 2004
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 152
    Points : 87
    Points
    87
    Par défaut
    Si je reprends mon script, je ne comprends pas pourquoi si l'on récupère la valeur dynamiquement, le script ne fonctionne plus alors qu'avec une variable fixe si.

    Que change ceci dans la suite de mon script? Est-ce que la fonction tourne en boucle, empêchant le bon fonctionnement du script?

    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
     
     <script type="text/JavaScript" language="JavaScript">
    		function scroll(n){
    			var blanc=" ";
    			//var texte = "Ceci est une démonstration de l'alternative par JavaScript de la balise propriétaire [marquee] (Internet Explorer) afin d'obtenir le même effet sur tous les navigateurs actuels.";
     
                            // Que change ceci dans la suite de mon script?
    			var texte = document.getElementById('scroll_text').value;
     
    			var scrolling_text = blanc + texte;
    			scrolling_text = scrolling_text.substring(n,scrolling_text.length);
    			document.message.scroll_text.value = scrolling_text;
     
    			if(scrolling_text.length > 0) n ++;
    			else n = 0;
     
    			s = n;
    			n = setTimeout("scroll(s)", 100);
    		}
    	</script>
    Cordialement

  7. #7
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 915
    Points
    79 915
    Par défaut
    Il nous manque un bout de code quelque part. Donnez-nous le code de la page HTML générée.

  8. #8
    Membre régulier
    Inscrit en
    Novembre 2004
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 152
    Points : 87
    Points
    87
    Par défaut
    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
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php print $language->language ?>" lang="<?php print $language->language ?>" dir="<?php print $language->dir ?>">
     
      <head>
        <title><?php print $head_title; ?></title>
     
        <script type="text/JavaScript" language="JavaScript">
    		function scroll(n){
    			var blanc=" ";
    			//var texte = "Ceci est une démonstration de l'alternative par JavaScript de la balise propriétaire        [marquee] (Internet Explorer) afin d'obtenir le même effet sur tous les navigateurs actuels.";
    			//var texte = document.getElementById('idScroll_text').value;
    			var texte = document.forms["message"].elements["scroll_text"].value;
     
    			var scrolling_text = blanc + texte;
    			scrolling_text = scrolling_text.substring(n,scrolling_text.length);
    			document.message.scroll_text.value = scrolling_text;
     
    			if(scrolling_text.length > 0) n ++;
    			else n = 0;
     
    			s = n;
    			n = setTimeout("scroll(s)", 100);
    		}
    	</script> 
      </head>
     
      <body onload="scroll(0)" class="<?php print $body_classes; ?>">
     
        <form name = "message"><input name = "scroll_text" size = "39" value="la valeur de mon input par defaut" id="idScroll_text" type="text"></form>
     
      </body>
    </html>
    Effectivement dans le body on a "onload=scroll(0)"

  9. #9
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 915
    Points
    79 915
    Par défaut
    Quelle est la valeur de texte à ce niveau-ci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var texte = document.forms["message"].elements["scroll_text"].value;
    prompt("",texte); 
    var scrolling_text = blanc + texte;

  10. #10
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 915
    Points
    79 915
    Par défaut
    Bon, j'ai peut-être mal compris ce que vous faisiez car les lignes commentées sont toujours les mêmes. Voici les deux possibilités:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    /* Je déclare le texte dans ma fonction */
    var texte = "Ceci est une démonstration de l'alternative par JavaScript de la balise propriétaire        [marquee] (Internet Explorer) afin d'obtenir le même effet sur tous les navigateurs actuels.";
    //Je commente cette ligne:
    //var texte = document.getElementById('idScroll_text').value;
     
    /* Je déclare le texte dans ma page */
    //Je commente cette ligne:
    //var texte = "Ceci est une démonstration de l'alternative par JavaScript de la balise propriétaire        [marquee] (Internet Explorer) afin d'obtenir le même effet sur tous les navigateurs actuels.";
    var texte = document.getElementById('idScroll_text').value;
    //Il faut un texte dans cet input HTML
    Bien entendu, la ligne commentée peut-être totalement supprimée.

Discussions similaires

  1. [PowerShell] Script pour lister date des dernières modifications apportée à un fichier
    Par Thoms13 dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 16/03/2010, 12h39
  2. Réponses: 8
    Dernier message: 29/07/2009, 16h34
  3. Une aide pour explication d'un script
    Par jibidy dans le forum Langage
    Réponses: 2
    Dernier message: 08/07/2008, 13h45
  4. Besoin d'aide pour modif script
    Par Abdias dans le forum Langage
    Réponses: 5
    Dernier message: 12/10/2006, 07h00
  5. Aide pour modification de script
    Par cryptorchild dans le forum Langage
    Réponses: 3
    Dernier message: 04/10/2005, 15h59

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