En utilisant prompt (), je génère un peu de html et j'ai besoin de connaître la longueur maximale que je peux mettre dans la fenêtre contextuelle.
Je ne trouve rien dans la spécification à ce sujet, je me demande si quelqu'un peut aider
La spécification de langage de programmation ECMAScript ne spécifie aucune longueur maximale. La longueur maximale sera spécifiquement axée sur la mise en œuvre, en fonction de la mémoire disponible.
Voici quelques chiffres réels au cas où quelqu'un serait intéressé. Ajoutez-en plus si vous en avez.
Utilisation du code suivant dans la console du navigateur:
s = prompt("a", Array(SOME_NUMBER).join("0")); s.length;
Par exemple, Chrome (v41) limite le 2ème paramètre pour invite () à 2000 caractères.
Si la valeur donnée est plus longue qu'elle tronque ces 3 chaînes:
first 999 char '...' last 998 char
Ceci signifie qu'il n'y a pas de longueur maximale pour prompt () dans la spécification. Afin de limiter la longueur, vous devrez vérifier la longueur du résultat après sa saisie.
La réponse de karthick était correcte, mais vous pouvez vérifier manuellement la longueur de l'invite de saisie de cette façon, obligeant l'utilisateur à ne saisir que moins un nombre de caractères défini ou à annuler:
var maxLength = 25; var userData = -1; while (userData == -1 || (userData != null && userData.length > maxLength)) { userData = window.prompt('Please enter some data. It should be no more than ' + maxLength + ' characters in length', '); }
Essaye ça :
var rep = "+" ; while (rep != null) { // document.write(rep.length + " " + rep + "<br>") ; // alternate code document.getElementById("res").innerHTML = rep.length + " " + rep + "<br>" ; rep = prompt("Input length was : " + rep.length, rep + rep); }
Dès que vous répondez «Annuler», le navigateur affiche la dernière longueur d'entrée et la chaîne correspondante. Annuler après 262144. Ensuite, tester plus loin. Pour une très grande longueur, le rétablissement de l'affichage peut prendre beaucoup de temps. Je n'ai aucune preuve réelle que la chaîne affichée ait la longueur correcte. Dans le cas de 262144 "+", j'ai commencé à visualiser cette chaîne, mais j'ai laissé tomber ce jeu après 32 heures (en plaisantant).