Bueno, pues eso, básicamente, xD
Que llevo un par de días intentando hacer una cosa... tengo una tabla (más o menos) así:
___________________________
| | | | | |
___________________________
| |
| |
| |
| |
| |
___________________________
| |
| |
___________________________
Donde las celdas de arriba son un menú, la del centro contiene un iframe para cargar lo que quiero ver y lo de abajo es un pie de página sin más.
La función que uso para cargar lo que quiero en el iframe es esta:
function carga(pagina){
$("#contenido").load(pagina);
}
Y la llamada (he probado esas dos formas para hacer la llamada):
<table id="tab" width="100%" align="center" border="1">
<tr>
<td onclick="carga('news.html');" style="cursor: pointer">
<img src="../img/home.png" alt="Home" />
</td>
<td style="cursor:pointer">
<a href="javascript:carga('perfil');">Mi perfil</a>
</td>
</tr>
</table>
Pero no hace nada... ¿alguien sabe dónde he metido la pata?
El código del irame es:
<iframe frameborder="0" id="contenido" width="100%" scrolling="auto">
</iframe>
Pues sí, o usas ajax o usas un iframe, pero no mezcles las dos cosas xD
En vez de un iframe usa un div: <div id="contenido"></div> y debe funcionar bien.
He usado un iframe para que solo esa celda de la tabla, la del contenido, tenga scroll. ¿puedo lograr ese efecto con el div?
EDITO:
He cambiado el iframe por:
<div id="contenido" width="100%">
</div>
Y no hace nada.
EDITO 2:
He probado esto, y me hace el alert pero no carga nada... asíque el fallo tiene que estar en la línea del load... :S
function carga(pagina){
$("#contenido").load(pagina);
alert('cargada');
}
No carga nada porque estás pasando como parámetro de la página el nombre a secas, sin extensión: <a href="javascript:carga('perfil');">Mi perfil</a>
Y luego en jquery tampoco se lo añades, lo que haces es:
function carga(pagina){
$("#contenido").load(pagina);
}
Tienes alguna página que se llame perfil a secas?, lo dudo. Se llamará perfil.html o perfil.php. Por lo tanto yo lo haría así:
function carga(pagina){
$("#contenido").load(pagina+".html");
}
o ".php" en caso de que sea php lo que vas a cargar. Por otro lado para que el div tenga scroll en la propiedad css del div contenido pon la propiedad overflow-y: scroll.
Saludos.
Cita de: Spider-Net en 26 Marzo 2012, 22:09 PM
No carga nada porque estás pasando como parámetro de la página el nombre a secas, sin extensión
Error mío, he copiado una versión antigua. Sí que tengo puesta la extensión en el código.
Lo del scroll, perfecto, gracias.
¿Y poniendo la extensión tampoco te carga nada? ¿Puedes poner tu código actual?
El trocito de la llamada es este:
<a href="javascript:carga('perfil.html');" target="contenido">Mi perfil</a>
función:
function carga(pagina){
$("#contenido").load(pagina);
//alert('cargada '+pagina);
}
y capa:
<div id="contenido">contenido</div>
Si quieres pongo todo el resto, pero creo q con eso es suficiente.
el target="contenido" en el enlace sobra. No sé si será eso, pero debe de ser porque lo demás está correcto.
Se me olvidó, de una prueba con el iframe, pero aún quitándolo da igual... ademas tengo esta otra llamada:
<body onload="altoFrame(); carga('news.html')">
Que se me olvidó ponerla antes, aunque es lomismo que las otras practicamente, pero no funciona en ninguna. Sé que hace la llamada porque he descomentado el alert, pero no carga.
Pues como no se te haya olvidado incluir el archivo de jquery, o haya algún problema de ese tipo la verdad es que no lo entiendo porque lo demás parece estar todo bien.
Sí sí está incluido. Y de hecho pensé que podía ser algo de eso y he buscado en la documentación haber si hay alguna forma sencilla de ver si está correctamente incluido y si la hay...
if(jQuery) alert('si');
y sí hace el alert. No lo entiendo...
Supongo que todos los archivos que intentas cargar como por ejemplo el archivo perfil.html se encuentra en el mismo directorio que el archivo principal no?
Sí. por supuesto.... no sé, voy a probar a subirlo a internet con ruta absoluta a ver...
EDITO: antes de tocar nada, he subido lo que tengo y funciona bien, excepto el scroll de la capa. :S
El scroll de la capa es css, y debe aparecer on-overflow. Osea, cuando el archivo que insertes en el load sobrepase la altura del div aparecerá, sino no. Con overflow-y: scroll; debería bastar :S
En local me funciona el scroll pero no la carga de la página, y en el servidor al reves... no se si reir o llorar... xD
(http://desmotivaciones.es/demots/201107/pajar_2.jpg)
No ahora en serio xD, debería funcionar tio. Subiste el CSS al servidor? a ver si se te olvidó y por eso no está funcionando...
Establece un height para el div contenido sino. Ponle por ejemplo: height: 300px; y cualquier archivo que sobrepase esa altura debería hacer que automáticamente aparezca el scroll.
Bien, bien, bien...
He resubido todo 5 veces. Y nada.
He borrado todo, lo he subido (sin tocar código) y funciona. guay. XD ;-)
Pero no entiendo porqué en local no va la funcioncita de los -------...
Pues si no tienes instalado un servidor web en local, pues supongo que es por eso xD
CitarPero no entiendo porqué en local no va la funcioncita de los -------...
el load() de jquery funciona desde la web, o en tu pc si tienes un servidor.
ejecutarlo de otra manera no funka.salu2
(http://www.wackybuttons.com/designcodes/110/1102350.jpg)
Un profesor me dijo q el javascript funciona siempre en cliente y no necesita estar subido... ¬¬
Gracias.
Profesores que aún viven en los 90 y no actualizan sus conocimientos. Me ha pasado miles de veces durante mi época de estudiante. Tuve profesores que se empeñaban en obligarnos a hacer webs con frames, porque según ellos eso era el futuro. A la vista está lo que se usan hoy en día los frames... gente que ha aprendido a hacer webs en los 80 y los 90 y se resignan a actualizarse xD
También es cierto q a ese profesor le tuve hace 3 años... pero la función load() me la enseñó él... ya podría saber de lo que habla joder
Bueno, saludos y gracias.
quizá esté de más decirlo pero :-X... lo digo :):
tus trabajos, ejercicios,etc. recomiendo ejecutarlos siempre en el servidor.salu2
Cita de: jhonatanAsm en 27 Marzo 2012, 22:32 PM
quizá esté de más decirlo pero :-X... lo digo :):
tus trabajos, ejercicios,etc. recomiendo ejecutarlos siempre en el servidor.salu2
Nada está de más!
Todos los consejos se agradecen :)