2017-06-22 12 views
2

Salut avoir un script pour rainbowtizing console.log sortie. Lorsque j'essaie, console.log renvoie une chaîne brute, mais si je copie cette sortie dans un autre fichier console.log, il affiche le message avec la couleur correcte.Comment afficher le message arc-en-ciel dans console.log

Savez-vous pourquoi?

var input = document.getElementById('input'); 
 

 
input.addEventListener("blur", function() { 
 
\t var inputValue = input.value; 
 
\t var inputSplitted = inputValue.split(""); 
 
\t 
 
\t let i = 0, 
 
\t \t inputLength = inputSplitted.length; 
 
\t var newLog ='"'; 
 
\t var colors = ""; 
 
\t for(i=0; i<inputLength; i++){ 
 
\t \t // Chaque lettre est contenue dans inputSplitted[i] 
 
\t \t newLog += "%c"+inputSplitted[i]; 
 
\t \t colors += ',"color: '+randomColor()+';"'; 
 
\t } 
 
\t newLog +='"'; 
 
\t var log = newLog+colors; 
 
\t console.log(log); 
 
\t console.log("%ch%ce%cl%cl%co%c %cw%co%cr%cl%cd","color: #144143;","color: #40C71F;","color: #5B7487;","color: #E3E226;","color: #6A8693;","color: #EC8802;","color: #9D44DE;","color: #1F1C4D;","color: #92812D;","color: #7A412C;","color: #73936F;"); 
 
}); 
 

 
function randomColor() { 
 
\t var letters = 'ABCDEF'; 
 
\t var color = '#'; 
 
\t for (var i = 0; i < 6; i++) { 
 
\t \t color += letters[Math.floor(Math.random() * 16)]; 
 
\t } 
 
\t return color; 
 
}
<input type=text name=input id=input>

+1

Dans le premier console.log vous avez une chaîne et dans la seconde vous avez plusieurs chaînes séparées par ','. Ainsi, le second fichier console.log les gère en tant que paramètres. – Huelfe

Répondre

1

Comme il est dit dans le commentaire le navigateur gère la chaîne comme une chaîne et non en tant que paramètres. Vous devez déclarer un tableau et utiliser console.log.apply.

Jetez un oeil:

var input = document.getElementById('input'); 
 

 
input.addEventListener("blur", function() { 
 
\t var inputValue = input.value; 
 
\t var inputSplitted = inputValue.split(""); 
 
\t 
 
\t let i = 0, 
 
\t \t inputLength = inputSplitted.length; 
 
\t var newLog =''; 
 
\t var colors = ""; 
 
\t for(i=0; i<inputLength; i++){ 
 
\t \t // Chaque lettre est contenue dans inputSplitted[i] 
 
\t \t newLog += "%c"+inputSplitted[i]; 
 
\t \t colors += '||color: '+randomColor()+';'; 
 
\t } 
 
\t newLog +=''; 
 
\t var log = newLog+colors; 
 
\t var arr = log.split('||'); 
 
\t console.log.apply(console, arr); 
 
\t console.log("%ch%ce%cl%cl%co%c %cw%co%cr%cl%cd","color: #144143;","color: #40C71F;","color: #5B7487;","color: #E3E226;","color: #6A8693;","color: #EC8802;","color: #9D44DE;","color: #1F1C4D;","color: #92812D;","color: #7A412C;","color: #73936F;"); 
 
}); 
 

 

 

 
function randomColor() { 
 
\t var letters = 'ABCDEF'; 
 
\t var color = '#'; 
 
\t for (var i = 0; i < 6; i++) { 
 
\t \t color += letters[Math.floor(Math.random() * 16)]; 
 
\t } 
 
\t return color; 
 
}
<input type=text name=input id=input>

Espoir ce code vous aidera. :)

+0

De rien! :) – Huelfe