http://javatwist.imingo.net/defi2.htm
D'où vient-il, ce joli message?
Version imprimable
http://javatwist.imingo.net/defi2.htm
D'où vient-il, ce joli message?
J'adore le nom que tu donnes à tes variables. :D
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... ;)
c'est heu comment dire ...
indéfinissable ?
ah ben oui en quelque sorte oui...;
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 :mrgreen:
... remarquez, on peut envisager des récompenses :P
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... :lol:
existe-til quelque part une liste des erreurs ?
Moins tordu que le premier a mon sens, mais tj aussi interessant :D
bon alors pmithrandir, t'as trouvé ou pas?
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.
oui il y a un paquet de trucs inutlies ...
si je te dis tirage de scrabble ... tu me donnes quelles lettres ?
bravo!
par contre, ce serait bien que tu trouves les 2 dernières réponses: les plus simples, en effet :mrgreen: ;
attention, ces lignes
sont loin d'être inutiles; ce sont même les plus importantes du script!Code:
1
2 String.prototype.bref=this.bref; String.prototype.lourd=this.length+5;
par contre, c'est clair que
etCode:Enfin;
sont des leurres;Code:Defi;
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")
oui, tu zappes peut-être certains points de la syntaxe dom;
est un objet balise: impossible d'écrire dedans;Code:document.getElementById("affErreurs")
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)
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;Code:lourd
suffit de remplacer lourd par 5 ...
voui
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. :)
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?
:arrow: La feuille de style
affiche en majuscule la première lettre du message;Code:#claque:first-letter {text-transform:capitalize;}
:arrow: Le script
définition de l'objet div et de son contenu pour javascript;Code:
1
2 var clique=document.getElementById("claque"); var atlast=clique.firstChild;
après, il faut commencer par la fin, c'est-à-dire, l'appel de fonction et la fonction:
On doit donc observer Defi(), Dark() et Vador()Code:
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()
Autant regarder dès maintenant la propriété "bref";Code:
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; }
Elle renvoie "undefined" puisque "this" est l'objet window courant et qu'il n'a pas de propriété "bref"!
A partir de maintenant, il faut se souvenir que la chaîne traitée est "undefined";Code:String.prototype.bref=this.bref
"Dark()" est une méthode de String qui renvoie la concaténation de 3 "sous-méthodes": enfin(), un() et 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:
1
2 String.prototype.Dark=function(){ return this.enfin()+this.un()+this.defi()}
"un()" renvoie la partie de la chaîne qui se trouve entre les 2 premiers "e" + un espace; ("fin")Code:
1
2 String.prototype.enfin=function(){ return this.substring(this.lourd).split('').reverse().join('').substring(1,3)}
"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:
1
2 String.prototype.un=function(){ return this.split('e')[1]+" "}
Rappelons-nous que la chaîne ainsi constituée est passée à Vador() pour convertir le 2è "e" en "é";Code:
1
2 String.prototype.defi=function(){ return this.replace(astragale,'$1 $2!')}
On obtient ainsi "Enfin un défi!";