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 :

[défi n°2] "Etes-vous String?"


Sujet :

JavaScript

  1. #1
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut [défi n°2] "Etes-vous String?"
    http://javatwist.imingo.net/defi2.htm

    D'où vient-il, ce joli message?

  2. #2
    Membre éprouvé
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Points : 1 122
    Points
    1 122
    Par défaut
    J'adore le nom que tu donnes à tes variables.

    D'où vient le message ? hein ? d'où ksékil vient ?


    Il vient du coté obscure de la force qui se bat contre un enemi inexistant qui à été materialisé grâce à une machine qui file à l'anglaise...

    bref... comprenne qui pourra...
    Les vaches ne peuvent PAS voler, quoi qu'elles aient pu vous raconter.

  3. #3
    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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    c'est heu comment dire ...
    indéfinissable ?
    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 !

  4. #4
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    ah ben oui en quelque sorte oui...;

  5. #5
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    bon j'en balance un autre mais c'est pas une raison pour vous jeter dessus hein: n'oublions pas qu'il s'agit d'une expérience pédagogique


    ... remarquez, on peut envisager des récompenses

  6. #6
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 295
    Points
    7 295
    Par défaut
    lol, j'en ai trouvé une partie je pense...

    et je vais tester un truc dans mon programme, j'ai l impression que ca va m aider sur une de mes question plus bas dans le forum(l affichage des erreurs...)

    EDIT : bah en fait non, j'arrive toujours pas a modifier un text dynamiquement...

    mine de rien, t'es bien tordu comme mec...

  7. #7
    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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    existe-til quelque part une liste des erreurs ?
    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 !

  8. #8
    En attente de confirmation mail Avatar de fred777888999
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 250
    Points : 292
    Points
    292
    Par défaut
    Moins tordu que le premier a mon sens, mais tj aussi interessant

  9. #9
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    bon alors pmithrandir, t'as trouvé ou pas?

  10. #10
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 295
    Points
    7 295
    Par défaut
    a priori, y a des lignes inutiles :

    String.prototype.bref=this.bref;
    String.prototype.lourd=this.length+5;

    le "en" est reporté depuis undefined que tu met a l envers et dont tu selectionne les catractere 1 a 3

    un() renvoi "fin " depuis undefined coupé par le caractere e

    defi() renvoi "un defi" tiré depuis la undefined toujours en prenant le masque astragal.(les 2 premier caractere puis les 4 suivants.

    dark() ne fait que mettre bout a bouts les mots

    vador() remplace les "e" par des "é"

    par contre, je ne trouve pas :

    - ou tu gere pour que ca remplace ton txte dans le visuel(ca doit etre le plus con du script... ou alors j'ai pas de firstchild.data dans mes div)
    - ou tu definit que la premiere lettre doit etre une majuscule.

  11. #11
    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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    oui il y a un paquet de trucs inutlies ...

    si je te dis tirage de scrabble ... tu me donnes quelles lettres ?
    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 !

  12. #12
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    bravo!


    par contre, ce serait bien que tu trouves les 2 dernières réponses: les plus simples, en effet ;

  13. #13
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    attention, ces lignes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String.prototype.bref=this.bref;
    String.prototype.lourd=this.length+5;
    sont loin d'être inutiles; ce sont même les plus importantes du script!


    par contre, c'est clair que

    et
    sont des leurres;

  14. #14
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 295
    Points
    7 295
    Par défaut
    bon, donc la majuscule est definit dans vador() en même temps que le remplacement de "e" par "é"

    Le texte affiché est contenu dans atlast.data

    donc dans clique.firstchild.data normalement

    cad :

    document.getElementById("claque").firstchild.data

    seul pb, dans mon cas, quand j'essaye de faire la meme chose dans mon script, il me dit que je n'ai pas de first child.
    la : http://www.developpez.net/forums/viewtopic.php?t=344117

    je pige pas...


    EDIT :

    pkoi le script marhe encore quand on els desactive alors? je me disais bien que this.lourd etait appellé plus haut...(pour générer le "en")

  15. #15
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    oui, tu zappes peut-être certains points de la syntaxe dom;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("affErreurs")
    est un objet balise: impossible d'écrire dedans;

    il faut que tu appelles son premier noeud pour pouvoir lui ajouter du texte (erreurs.firstChild); mais dans ton cas, tu vas avoir une erreur sous IE parce que le div ne contient rien au départ; tu ferais mieux de le générer dans le script et de lui donner un texte avec (nodeValue ou data)

  16. #16
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    bah, pour bref, la "fausse propriété" est reprise dans la fonction, donc c'est vrai qu'on pouvait se passer de la première déclaration;

    pour , le résultat est sûrement différent quand on la retire;

  17. #17
    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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    suffit de remplacer lourd par 5 ...
    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 !

  18. #18
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    voui

  19. #19
    Membre éprouvé
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Points : 1 122
    Points
    1 122
    Par défaut
    JT : quand pourras-t-on donner la réponse avec l'explication complète de ton script ?


    Au passage : on pourrais presque faire une explication de texte avec mon précédent message.
    Les vaches ne peuvent PAS voler, quoi qu'elles aient pu vous raconter.

  20. #20
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    soluce

    description
    Remplacer le contenu d'un div par un autre message quand on clique dessus.

    but du jeu
    D'où vient ce message.


    quoi regarder?

    La feuille de style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #claque:first-letter {text-transform:capitalize;}
    affiche en majuscule la première lettre du message;

    Le script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var clique=document.getElementById("claque");
    var atlast=clique.firstChild;
    définition de l'objet div et de son contenu pour javascript;

    après, il faut commencer par la fin, c'est-à-dire, l'appel de fonction et la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function Enfin(){
    Defi;/* instruction sans effet: Defi est le nom d'une fonction utilisée dans le script;*/
    atlast.data=String(Defi(atlast.data)).Dark().Vador();/* le nouveau message est "la valeur retournée par la fonction Defi() quand on lui passe la chaîne d'origine en argument; cette chaîne subit alors successivement les méthodes Dark() et Vador()";*/
    }
     
    clique.onclick=Enfin;// appel de Enfin()
    On doit donc observer Defi(), Dark() et Vador()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function Defi(enfin){// enfin a la valeur du div d'origine;
    String.prototype.Vador=function(){
    return this.replace(/\Be/i,'é')};/* une nouvelle méthode de String est définie: elle remplace le premier "e" qui ne se trouve pas en limite de mot par un "é";*/
    Enfin;// instruction sans effet: Enfin est une fonction de la page;
    return enfin.bref // la fonction retourne la propriété "bref" de la chaîne;
    }
    Autant regarder dès maintenant la propriété "bref";
    Elle renvoie "undefined" puisque "this" est l'objet window courant et qu'il n'a pas de propriété "bref"!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String.prototype.bref=this.bref
    A partir de maintenant, il faut se souvenir que la chaîne traitée est "undefined";

    "Dark()" est une méthode de String qui renvoie la concaténation de 3 "sous-méthodes": enfin(), un() et defi()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String.prototype.Dark=function(){
    return this.enfin()+this.un()+this.defi()}
    "enfin()" renvoie une portion de chaîne débutant au 6e caractère; cette chaîne est inversée et on en prend les 2e et 3e caractères ("en")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String.prototype.enfin=function(){
    return this.substring(this.lourd).split('').reverse().join('').substring(1,3)}
    "un()" renvoie la partie de la chaîne qui se trouve entre les 2 premiers "e" + un espace; ("fin")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String.prototype.un=function(){
    return this.split('e')[1]+" "}
    "defi()" renvoie les six premiers caractères de la chaîne en ajoutant un espace après le 3e, et un point d'exclamation en fin de chaîne; la chaîne est modifiée par le masque "astragale" [2 caractères + 4 caractères + 1 ou plusieurs caractères]; on obtient donc "un defi";
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String.prototype.defi=function(){
    return this.replace(astragale,'$1 $2!')}
    Rappelons-nous que la chaîne ainsi constituée est passée à Vador() pour convertir le 2è "e" en "é";
    On obtient ainsi "Enfin un défi!";

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [défi n°9] Si ça vous gratte...
    Par javatwister dans le forum Général JavaScript
    Réponses: 65
    Dernier message: 26/06/2005, 23h31

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