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 :

Texte defilant validation W3C


Sujet :

JavaScript

  1. #1
    Membre du Club Avatar de Bathou
    Inscrit en
    Mars 2007
    Messages
    179
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2007
    Messages : 179
    Points : 52
    Points
    52
    Par défaut Texte defilant validation W3C
    Bonjour,

    J'ai un petit problème avec le code suivant qui n'est pas valide pour le W3C
    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
    <?xml version='1.0' encoding='ISO-8859-1'?>
    <!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="fr">
     
    <head>
     <link rel="stylesheet" media="screen" type="text/css" title="Design" href="css_tp.css" />
     <title>Accueil</title>
     
     
    <!-- DEBUT DU SCRIPT -->
    <script type="text/javascript">
    //<![CDATA[
     
    size=30;
    x = 3*size;
    place = 0;
    texte = 'Bienvenue';
    texteDef = texte;
    function defil()
    	{
    	texteDef = texteDef.substring(1,texteDef.length);
    	while(texteDef.length < x)
    		{
    		texteDef += " - " + texte;
    		}
    	document.defil.defilbox.value = texteDef;
    	tempo2 = setTimeout("defil()", 150)
    	}
    window.onload = defil;
    //]]>
    </script>
    <!-- FIN DU SCRIPT -->
    </head>
     
    <body>
    <form name="defil">
    <p><input type="text" name="defilbox" size=' + size + '/></p>
     
    </form>
    <!-- FIN DU SCRIPT -->
     
     
    </body>
    </html>
    En fait, si j'enlève la balise form, le texte ne bouge plus... et le name dans le form n'est pas valide... Comment puis-je y arriver?

    Par avance, merci beaucoup.

  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    bonjour,

    déjà tu as une fonction defil() qui porte le même nom que ton objet form. Ca peut causer des conflits.

    Ensuite : déclare tes variables !

    D'après l'outil de validation de W3C, tu as 2 erreurs :
    tu ne peux pas donner l'attribut name à ta balise form et il manque l'attribut action

    Line 36, Column 12: Attribute "name" exists, but can not be used for this element.

    Line 36, Column 19: required attribute "action" not specified

  3. #3
    Membre actif Avatar de nod__
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 176
    Points : 226
    Points
    226
    Par défaut
    pour le formulaire, remplace l'attribut "name" par "id" et tu peux alors accéder au formulaire par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var form = document.forms["idDuFormulaire"];
    et tout le reste tu l'as

    ah aussi,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     setTimeout("defil()", 150)
    non non et re non, faut pas passer de chaine de caractères à setTimeout et setInterval, utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     setTimeout(defil, 150);
    ça marche pareil, en mieux (et n'oublie pas les ";" non plus).

  4. #4
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    Citation Envoyé par nod__ Voir le message
    pour le formulaire, remplace l'attribut "name" par "id" et tu peux alors accéder au formulaire par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var form = document.forms["idDuFormulaire"];
    et tout le reste tu l'as
    Correction : quand un objet est identifié par son id on utilise getElementById()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var formulaire = document.getElementById("idDuFormulaire");
    ensuite il faut éviter qu'une variable porte le nom d'une balise HTML, on peut avoir des surprises

    Citation Envoyé par nod__ Voir le message
    ah aussi,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     setTimeout("defil()", 150)
    non non et re non, faut pas passer de chaine de caractères à setTimeout et setInterval, utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     setTimeout(defil, 150);
    ça marche pareil, en mieux (et n'oublie pas les ";" non plus).
    setTimeout et setInterval prennent des chaines de caractères en guise de paramètres, la syntaxe dans le code de Bathou est juste.

    L'autre écriture que l'on peut trouver pour setTimeout et setInterval est celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     setTimeout(function(){defil()}, "150");
    est dans ce cas effectivement le premier paramètre n'est pas une chaine de caractère mais une fonction anonyme.

  5. #5
    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
    Points : 4 835
    Points
    4 835
    Par défaut
    et ça ???


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="defilbox" size=' + size + '/>

    c'est quel langage , d'affecter une variable javascript directement dans du code HTML ???

  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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    Pour AUteur

    concernant le passage de string dasn un setInterval ou setTimeout
    nod__ ne dit pas autre chose..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     setTimeout(defil, 150);
    defil est une fonction.

    dans ta version tu rajoutes uns fonction anonyme.
    Le fait de passer du string à un setInterval oblige js à une interprétation supplémentaire.

    nod_ oblige par contre a rajouter des paramètres à la fonction setTimeout pour les passer à le fonction lanceé. Seul hic la syntaxe ne passe pas sosu IE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setTimeout(defil, 150, parametre)
    la syntaxe d'auteur permet de passer les paramètre directement à la fonction.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setTimout(function(){defil(parametre)},150)

  7. #7
    Membre du Club Avatar de Bathou
    Inscrit en
    Mars 2007
    Messages
    179
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2007
    Messages : 179
    Points : 52
    Points
    52
    Par défaut
    merci beaucoup à tous, ça fonctionne et c'est passé au W3C
    Par contre juste une autre question : Comment je fais pour modifier le style de mon texte qui défile...?? j'aurais bien utiliser un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <STYLE TYPE="text/css">
    <!--
    INPUT {
         color:#CC0000;
         background-color:#FFCC00;
         font-size:10px;
         font-family:arial;
    }
    </style>
    mais je préferais utiliser ma feuille de css... Seulement je coince un petit peu...

  8. #8
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    ben colle un id sur la zone defilante et mets ton style là dans la feuille css

  9. #9
    Membre du Club Avatar de Bathou
    Inscrit en
    Mars 2007
    Messages
    179
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2007
    Messages : 179
    Points : 52
    Points
    52
    Par défaut
    c'est ce que j'avais fait mais j'avais juste mal écrit height et bizarement ça marche beaucoup mieux.

    Merci!

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

Discussions similaires

  1. conversion de texte pour validation W3C
    Par nixonne dans le forum Langage
    Réponses: 1
    Dernier message: 31/10/2006, 23h53
  2. Texte defilant
    Par gilles641 dans le forum MFC
    Réponses: 2
    Dernier message: 04/07/2005, 19h37
  3. text defilant
    Par adilou1981 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 10/02/2005, 20h00
  4. [HTML / Viewpoint / Valid W3C] Problème de lecture
    Par zebden dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 01/02/2005, 11h15

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