2011-07-28 677 views
9

¿Alguien sabe cuál es el número máximo de caracteres que se pueden mostrar en un cuadro de alerta?el número de caracteres permitidos en un cuadro de alerta - javascript

estoy volviendo una alerta de error al usuario con los detalles para cada uno de los errores y advertencias, pero al parecer el cuadro simplemente no aparecen más cuando hay demasiados datos. Aquí está algo de mi código:

<?php 
    //Two arrays are created in php, one with the errors, one with the warnings. 
?> 

<script type="text/javascript"> 
    alert("<?php 
     if(count($err) != 0){ 
      $errorfound = True; 
      echo 'Error:\n\n'; 
      foreach($err as $message){ 
       echo '\t' . $message . '\n'; 
      } 
     } 
     if(count($warn) != 0){ 
      echo '\n\nWarning:\n\n'; 
      foreach($warn as $mess){ 
       echo '\t' . $mess . '\n'; 
      } 
     }?>"); 
</script> 

<?php 
    //app continues if no error was found 
?> 

Gracias.

EDITAR

Tras la investigación, mi problema no proviene de la capacidad de la caja de alerta, pero en realidad era que tenía que addslashes() a mis mensajes (por eso pensé que estaba trabajando con menos valores , pero de hecho solo tuve suerte porque no eran personajes de los que se tenía que escapar). Definitivamente voy a cambiar ese cuadro de alerta por algo más apropiado, solo quería decir que no hay ningún problema con el cuadro de alerta.

+1

No estoy seguro de cuántos caracteres están permitidos, pero si son demasiados datos, la 'alerta' la función no es la mejor manera de mostrarla. – FishBasketGordo

+0

Si llega al punto en el que hace esta pregunta, le recomendaría usar un div superpuesto con un cuadro "cerrado" en lugar de "alerta". El 'div' podrá ofrecer cosas como desplazarse, copiar y pegar, formatear dramáticamente mejor los mensajes de error, etc., etc. –

+0

No estoy seguro de cuál es el límite de caracteres para una alerta, pero mi suposición es que depende del navegador y sistema operativo/dispositivo. ¿Ha considerado simplemente mostrar un mensaje de error de flash en un DIV en su lugar? – johnmdonahue

Respuesta

2

Personalmente me desprecian alertas emergentes. Puede considerar el uso de un cuadro de mensaje integrado en la página que puede contener una cantidad indefinida de contenido, y puede "parpadear" en la pantalla durante unos segundos en caso de error.

Puede desactivar opcionalmente toda la página y hacer que el mensaje de una superposición. Prototype o jQuery harían un trabajo rápido de cualquiera de las tareas.

Si desea ver un ejemplo de la desactivación de la página, este artículo utiliza un indicador de progreso que fácilmente podría ser cambiado por un mensaje. http://edwardawebb.com/web-development/cakephp/disable-page-show-translucent-progress-bar

+0

En el lado positivo, FF5 ahora crea alertas emergentes por pestaña como una superposición pseudo-en línea, en lugar de una ventana modal de sistema operativo de todo el navegador. –

+0

@Marc B, eso es muy bueno. Creo que Chrome funciona de la misma manera ya que cada pestaña es un proceso propio. – Eddie

+0

@Marc B: Las alertas cambiarán las pestañas, pero puedes alejarse de ellas sin hacer clic :) –

11

Vamos a ver si realmente puedo responder a su pregunta:

no hay un tamaño 'máximo' de alerta en Javascript. Varía de un navegador a otro. Sin embargo, probablemente será mejor que permanezca con menos de 1000 caracteres, ya que muchos navegadores parecen comenzar a truncar después de 999.

+0

Sí, aparentemente se trunca cuando alcanza el límite. Creo que encontraré otra forma, ya que la alerta no funciona para mí. Gracias. – talnicolas

+0

No hay problema. Encantado de ayudar. – dwmcc

0

No sé sobre los límites en alerta(), pero estoy bastante seguro de que su código producirá un error de sintaxis JS.

Especialmente tener en cuenta que no se puede simplemente usar cadenas en varias líneas en javascript. Por favor, muéstranos el resultado de tu script PHP.

Ejemplos:

//will not work 
alert('this 
     is 
     an 
     alert'); 

//This will work: 
alert('this '+ 
     'is '+ 
     'an '+ 
     'alert'); 

//this works too: 
alert('this \ 
     is \ 
     an \ 
     alert'); 
+0

no produce un error ya que está funcionando cuando tengo unos pocos errores/advertencia – talnicolas

+0

Por lo tanto, muestre el resultado generado que obtendrá cuando no funcionó. A veces he visto cuadros de alerta que llenan mi pantalla completa con código. –

0

Después de mirar el código, no veo ninguna razón por la que aún necesita alerts. Si está validando la salida de PHP, simplemente volcar un par comentarios HTML en su código y vista de origen:

<!-- <?php echo 'foo bar baz etc'; ?> --> 

si debe estar utilizando JavaScript, considere el uso de la consola incorporada para manejar su depuración, ya que no bloqueará tus scripts Firebug para Firefox es el mejor conjunto de herramientas de desarrollo en mi humilde opinión.

console.log(<?php echo $whatever; ?>); 

En cuanto a alert se refiere.No creo que haya un límite específico para la longitud de la cadena que puede manejar, ya que mozilla docs la lista como DOM Level 0. Not part of any standard.

Cuestiones relacionadas