Foros del Web » Programando para Internet » Javascript »

abrir ventana con autoajuste imagen

Estas en el tema de abrir ventana con autoajuste imagen en el foro de Javascript en Foros del Web. Soy nuevo aqui, no conozco gran cosa de Js, por eso aprecio toda su ayuda amigos. Lo que quiero es que abrir una ventanita que ...
  #1 (permalink)  
Antiguo 15/04/2003, 09:15
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 22 años, 10 meses
Puntos: 11
abrir ventana con autoajuste imagen

Soy nuevo aqui, no conozco gran cosa de Js, por eso aprecio toda su ayuda amigos.

Lo que quiero es que abrir una ventanita que se autoajuste al tamaño de la imágen, por eso he usado un script de las faqs de Tunait, muy bueno. Pero al tratar de integrarlo con php parece que he roto el script y aunque el link se muestra, al dar click no se abre la ventanita, sino que me abre la imágen en la misma ventana.

arriba del head

<SCRIPT LANGUAGE="JavaScript">
<!--
function showB(url){
var ur = "http://";
var myurl = ur + new String(url);
the_window = window.open(myurl,'foto','toolbar=no,location=yes, directories=no,status=yes,menubar=yes,scrollbars=y es,resizable=yes,copyhistory=no,dependent=no,scree nX=0,screenY=0,width=500,height=500');
}
-->
//script por Tunait
var ventana
var cont=0
var titulopordefecto = "Perico de los palotes" //texto por defecto a mostrar en la barra de título en caso de omitir el argumento titulo

function afoto(cual,titulo)
{
if(cont==1){ventana.close();ventana=null}
if(titulo==null){titulo=titulopordefecto}
ventana=window.open('','ventana','resizable=yes,sc rollbars=no')
ventana.document.write('<html><head><title>' + titulo + '</title></head><body style="overflow:hidden" marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" scroll="no" onUnload="opener.cont=0"><img src="' + cual + '" onLoad="opener.redimensionar(this.width, this.height)">')
ventana.document.close()
cont++
}
function redimensionar(ancho,alto)
{
ventana.resizeTo(ancho+12,alto+28)
ventana.moveTo((screen.width-ancho)/2,(screen.height-alto)/2) //centra la ventana. Eliminar si no se quiere centrar el popup
}
</script>
<head>
</head>

la imagen:

$dbfile2="php/images/clients/".$rowF["image2"];
if ($rowF["image2"] !== ''){
if (file_exists($dbfile2)){
echo "<a href='".$dbfile2."' onClick='afoto('".$dbfile2."','Mi titulo');return false'> <img src='".$dbfile2."' width='140' height='80'></a><br>";



Ayuda

Gracias.
  #2 (permalink)  
Antiguo 15/04/2003, 09:31
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
Holas

Te da error javascript??

Si te da... te dice "se esperaba ;" ??
  #3 (permalink)  
Antiguo 15/04/2003, 09:35
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 22 años, 10 meses
Puntos: 11
no me da ningun error Js, solo que no me abre la ventanita, en lugar de eso al dar click, la foto se abre en la misma pagina.

originalemente el script es:
<a href="#" onClick="afoto('file:///C|/ASP/Ct/fotos/29.jpg','Mi titulo');return false"><img src="file:///C|/ASP/Ct/fotos/29.jpg" width="467" height="350"></a>

yo lo adapte a:
echo "<a href='".$dbfile2."' onClick='afoto('".$dbfile2."','Mi titulo');return false'> <img src='".$dbfile2."' width='140' height='80'></a><br>";



gracias.
  #4 (permalink)  
Antiguo 15/04/2003, 09:46
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
Es que si te fijas al re-adaptarlo con el php has cambiado unas comillas dobles a simples.

En el OnClick=" esta primera comilla la cambias a simple '
Si te fijas, el argumento que se le pasa a la función también va entre comillas simples.

En el script original queda comilla doble, comilla simple, se cierra comilla simple y se cierra comilla doble.

En cambio en la adaptación con el php la segunda comilla debe ser interpretada como cierre de la primera, con lo que se detiene ahí todo y no llega ni a llamar a la función ni al return false del final que es lo que evita que la imagen se cargue además en la propia ventana.

No sé si logré explicarme

echo "<a href='".$dbfile2."' onClick=' esta comilla habría de ser dobleafoto('".$dbfile2."','Mi titulo');return false' y ésta también> <img src='".$dbfile2."' width='140' height='80'></a><br>";

Usa el caracter de escape.

Algo así

echo "<a href=".$dbfile2."' onClick= \ "afoto('".$dbfile2."','Mi titulo');return false\ "> <img src='".$dbfile2."' width='140' height='80'></a><br>";

Puse separada la barra \ de la comilla porque si no el foro la omite. Simplemente vigila que la barra \ y la comilla doble estén juntas

De todas formas fíjate bien si no te sale (en explorer) un triangulito amarillo en la barra de status a la izquierda.

Si te sale hazle doble click y pídele "ver detalles"
Si usas netscape teclea javascript: en la barra de direcciones y le das a enter

Y me cuentas

Última edición por tunait; 15/04/2003 a las 09:48
  #5 (permalink)  
Antiguo 15/04/2003, 11:04
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 22 años, 10 meses
Puntos: 11
Me sale el triangulito amarillo con el error, uso explorer, al ver los detalles me apunta al Js.

entonces hice el cambio sugerido
echo "<a href='".$dbfile2."' onClick=\"afoto('".$dbfile2."','Mi titulo');return false\">";echo" <img src='".$dbfile2."' width='140' height='80'></a><br>";


pero aún asi no me abre la ventanitta, solamente me abre la imagen en la misma ventana.
  #6 (permalink)  
Antiguo 15/04/2003, 11:08
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
Eso es que sigue habiendo algo que detiene la llamada al script y al return false

¿Qué error te da el triangulito amarillo??

Haz una cosa, ejecuta tu página php y el resultado que te cargue en el navegador le pides el código fuente y me lo pegas aqui.

Al menos la línea de la llamada a la imagen. Así viendo en qué queda el código resultante podré encontrar mejor el error
  #7 (permalink)  
Antiguo 15/04/2003, 11:08
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 10 meses
Puntos: 17
No concatenes las variables, así te será más fácil usar las comillas que correspondan cada vez.

En lugar de <a href='".$dbfile2."'.... usa <a href="$dbfile2"....
__________________
M a l d i t o F r i k i
  #8 (permalink)  
Antiguo 15/04/2003, 11:21
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 22 años, 10 meses
Puntos: 11
El codigo fuente es:

<tr>
<td colspan="2">
<img src='php/images/clients/20030410075124.1.g'><br>bcvn <br> </td>
<td width="32%" rowspan="2"><p>
<a href='php/images/clients/20030410074521.1.g' onClick="afoto('php/images/clients/20030410074521.1.g','Mi titulo');return false"> <img src='php/images/clients/20030410074521.1.g' width='140' height='80'></a><br>xbvcvb </p>
</td>
</tr>


:=(
  #9 (permalink)  
Antiguo 15/04/2003, 11:39
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
Pues está bien lo que te genera (aunque un archivo de imagen con extensión .g no sé yo.....)

El script anterior al mío da error, el que tienes como

<!--
function showB(url){
var ur = "http://";
var myurl = ur + new String(url);
the_window = window. open(myurl,'foto','toolbar=no,location=yes,directo ries=no,status=yes,menubar=yes,scrollbars=yes,resi zable=yes,copyhistory=no,dependent=no,screenX=0,sc reenY=0,width=500,height=500');
}
-->

¿ves donde están estas líneas?

<!-- y -->

Deben llevar delante dos barras

//<!--

//-->

Al no llevarlas da error javascript y yá no quiere trabajar nada más.

Simplemente colocando esas barras ahí (o directamente eliminando esas dos líneas <!-- y -->) funcionó bien


Ya me contarás
  #10 (permalink)  
Antiguo 15/04/2003, 11:42
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 10 meses
Puntos: 17
Supongo que window. open (con un espacio en medio) tampoco es muy correcto.

Por cierto, los famosos "comentarios para navegadores anticuados" están más anticuados que los navegadores a los que van destinados
__________________
M a l d i t o F r i k i
  #11 (permalink)  
Antiguo 15/04/2003, 11:47
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
Caramba, no me había fijado en que está separado window de open. De todas formas una vez corregido el tema de los "comentarios para navegadores anticuados" están más anticuados que los navegadores a los que van destinados (me gustó eso ) funcionó todo correctamente (al menos en explorer 5.0)
  #12 (permalink)  
Antiguo 15/04/2003, 11:51
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 22 años, 10 meses
Puntos: 11
Gracias, Tunait, tenias razón eran los <--



Ahora, cain, a que te refieres con los comentarios, no los veo en el Js, bueno no se mucho de Js pero puedes ser mas expl[icito?

graicas
  #13 (permalink)  
Antiguo 15/04/2003, 14:23
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
Tarde pero llego

Lo de los comentarios se refiere precisamente a esas líneas que estaban dando problemas.

Para comentar en html se usa <!-- aqui el comentario --> y lo que encuentra así el navegador lo omite.

Al principio del javascript se solían colocar los scripts como si fueran un comentario html para aquellos navegadores que no interpretaran js. Si no se ponía como comentado, los navegadores que no soportaban js mostraban el código js como si fuera texto sin interpetarlo.

La forma de comentar en js (o al menos una de llas) es colocando dos barras //
Lo que quede en la misma línea a la derecha de las dos barras será un comentario javascript.

//esto es un comentario en javascript.


Pero obviamente los comentarios en js no son interpretados por html y los comentarios en html no son interpretados por js.

El script donde estaban esas líneas <!-- y --> No eran comprendidas por js, por eso daban error y faltaba comentarlas también en js

//<!-- si el navegador comprende js ignorará lo que haya detrás, pero si no lo soporta, lo interpretará como un comentario html y no se mostraría el código js

aish no sé si logré explicarme.

Pero claro, hoy en día qué navegador no soporta js??

De ahí el comentario de Cain de que el hecho de comentar los scripts es más anticuado que los navegadores para los que van destinados
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 18:43.