Foros del Web » Programando para Internet » Javascript »

invalid XML attribute value

Estas en el tema de invalid XML attribute value en el foro de Javascript en Foros del Web. Hola buenas tardes, necesito un poco de conocimiento, tengo una función javascript que crea un popUp, este popUp se crea al hacer click en un ...
  #1 (permalink)  
Antiguo 13/10/2008, 16:33
 
Fecha de Ingreso: mayo-2006
Mensajes: 58
Antigüedad: 18 años
Puntos: 0
invalid XML attribute value

Hola buenas tardes, necesito un poco de conocimiento, tengo una función javascript que crea un popUp, este popUp se crea al hacer click en un link que tengo en un archivo .tpl, al llamar a la función que crea el popUp le cargo un valor que traigo de una variable php, esta variable lo que contiene es una tabla html, con datos que extraigo de una BBDD, cuando el popUp aparece, la tabla no trae formato, están bien dividas las columnas y las filas, se bien la información, pero por ejemplo si le pongo una clase que se llama button en su atributo class. El formato no se carga es decir no hay colores o algo parecido.

Creo que alguna vez leí que en un alert no se pueden cambiar los colores y cosas asi, pero si ya lo mando llamar con ese formato este no se carga.

Me podrían decir el porque??? muchas gracias...
  #2 (permalink)  
Antiguo 13/10/2008, 16:36
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: invalid XML attribute value

Y dónde estás definiendo la regla css que corresponde a esa clase?
  #3 (permalink)  
Antiguo 14/10/2008, 07:28
 
Fecha de Ingreso: mayo-2006
Mensajes: 58
Antigüedad: 18 años
Puntos: 0
Respuesta: invalid XML attribute value

Perdón por tardar....

Esta clase está definida en un archivo .css que se incluye en el .tpl, específicamente esa clase, no he probado poniendo dicha clase en el .tpl ni en el php directamente. Bueno de hecho ese error lo veo en la consola de errores del FF, y cuando sucede ese error ni siquiera me aparece el popup, hasta que le quito el class=title a la etiqueta...

Ojalá me puedan decir que es lo que sucede, no es tanto con el fin de que a fuerzas quiero que tenga formato, si no saber porque no aparece, que hago mal...

Gracias
  #4 (permalink)  
Antiguo 14/10/2008, 08:32
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: invalid XML attribute value

Bueno, es todo medio confuso. Tendrías que olvidarte de lo que es tpl en tu explicación, ya que lo que siempre visualizás es html, entonces no tiene sentido que hablemos de tpl. Entonces, según entiendo, tenés una página html con un enlace que dispara un popup (popup no es lo mismo que alert). En este popup, tenés un objeto html con un estilo css, pero dicho estilo no se aplica. Para que se aplique, dentro del código html del popup debe incluirse el llamado a la página de estilos, ya sea usando etiquetas style y la regla at import o usando etiquetas link con atributo href apuntando a la hoja de estilos.
Aunque ese parece ser el problema, si no vemos el código que genera el popup ni el html del mismo, no sabremos bien si es eso u otra cosa.
  #5 (permalink)  
Antiguo 14/10/2008, 09:28
 
Fecha de Ingreso: mayo-2006
Mensajes: 58
Antigüedad: 18 años
Puntos: 0
Respuesta: invalid XML attribute value

Código:
function popupWin(valor) {
		text = "<html> <head> <title>Ayuda con n&uacute;meros</title> <body> ";
		text += "<center> <br>";
		text += valor;
		text += "</center> </body> </html> ";
		windowProp(text);
	}
	function windowProp(text) {
		newWindow = window.open('','newWin','width=300,height=500,scrollbars=yes,resizable=no,location=no,menubar=no,toolbar=no');
		newWindow.document.write(text);
	}
Código HTML:
<a onclick="popupWin({$table3})">Usuarios</a></td> 
Ok la primera parte es el javascript que genera el popup, la segunda parte es el enlace html que tiene la variable de php que trae la tabla ($table3), entonces como ves $table3 es el valor que toma el popup para mostrar en la pantalla.

Perfecto, tomé en cuenta tu sugerencia, dentro del html del popup llamé al archivo CSS, y funcionó perfecto, muchas gracias y disculpa las molestias

Última edición por fagos08; 14/10/2008 a las 09:40
  #6 (permalink)  
Antiguo 14/10/2008, 09:43
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: invalid XML attribute value

Cita:
Iniciado por fagos08 Ver Mensaje
Código:
function popupWin(valor) {
		text = "<html> <head> <title>Ayuda con n&uacute;meros</title> <body> ";
		text += "<center> <br>";
		text += valor;
		text += "</center> </body> </html> ";
		windowProp(text);
	}
	function windowProp(text) {
		newWindow = window.open('','newWin','width=300,height=500,scrollbars=yes,resizable=no,location=no,menubar=no,toolbar=no');
		newWindow.document.write(text);
	}
Código HTML:
<a onclick="popupWin({$table3})">Usuarios</a></td> 
Ok la primera parte es el javascript que genera el popup, la segunda parte es el enlace html que tiene la variable de php que trae la tabla ($table3), entonces como ves $table3 es el valor que toma el popup para mostrar en la pantalla.
Bueno, como ves, en la declaración del código del popup no hay una llamada a la hoja de estilos. Entre </title> y <body>, debería aparecer
Código:
<link rel=\"stylesheet\" type=\"text/css\" href=\"tuhojadeestilos.css\">
Además, el parámetro de popupEin debe ser un string, de manera que hay que entrecomillarlo:
Código:
"popupWin('{$table3}')"
Por último, para asegurarte de que sea compatible con javascript, aunque es posible que no sea necesario, deberías pasarlo por una función que lo escape correctamente. En php, podrías usar esto:
Código PHP:
function js_encode($s){
    
$texto='';
    
$lon=strlen($s);
    for(
$i=0;$i<$lon;++$i){
        
$num=ord($s[$i]);
        if(
$num<16$texto.='\x0'.dechex($num);
        else 
$texto.='\x'.dechex($num);
    }
    return 
$texto;

y aplicarloasí:
Código PHP:
"popupWin('{".js_encode($table3)."}')" 
  #7 (permalink)  
Antiguo 14/10/2008, 09:45
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: invalid XML attribute value

Bueno, lástima no haber visto antes que lo habías resuelto. Igualmente, pegale una mirada a mi respuesta anterior (hay cosas que pueden servirte en el futuro, como el escape correcto de strings generados en el servidor.)
  #8 (permalink)  
Antiguo 14/10/2008, 10:45
 
Fecha de Ingreso: mayo-2006
Mensajes: 58
Antigüedad: 18 años
Puntos: 0
De acuerdo Respuesta: invalid XML attribute value

Muchas gracias, estoy de acuerdo en el escapado de las cadenas, y tomaré mucho en cuenta esa función, en próximas aplicaciones, disculpa si te hice trabajar, pero de todos modos me sirve, te agradezco de nuevo.

Salu2
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:59.