Ver Mensaje Individual
  #36 (permalink)  
Antiguo 16/01/2009, 12:52
Avatar de Mikmoro
Mikmoro
Colaborador
 
Fecha de Ingreso: octubre-2006
Ubicación: K-pax
Mensajes: 7.228
Antigüedad: 18 años, 1 mes
Puntos: 280
Respuesta: ¿Uso de # como variable?

Voy a ver qué tal puedo explicar eso que te decía, con un caso real de una página en la que colaboré hace ya un tiempo:

Tenemos una galerías de fotos que se cargan mediante Ajax. Si tú accedes a la página de las galerías, te sale la definida por defecto:
http://www.artsaia.com/salaconcierto...a/galeria.html
y luego están todos los enlaces para cargar cualquiera de ellas mediante ajax en el carrete de arriba.

Script AJAX:
Cita:
var peticion = false;
if (window.XMLHttpRequest) {
peticion = new XMLHttpRequest();
} else if (window.ActiveXObject) {
peticion = new ActiveXObject("Microsoft.XMLHTTP");
}


function ObtenerDatos(datos,divID) {
if(peticion) {
var obj = document.getElementById(divID);
peticion.open("GET", datos);
peticion.onreadystatechange = function() {
if (peticion.readyState == 4) {
obj.innerHTML = peticion.responseText;
}
}
peticion.send(null);
}
}
Cada galería se carga con un enlace como este:
<a href="javascript:ObtenerDatos('sala7_3.html','carr ete');">, en el que llamamos a la función de ajax y le decimos qué archivo cargar (sala7_3.html) y en qué div (carrete). Supongo que hasta aquí todo sencillo y claro.

¿Cómo hacemos ahora para poder enlazar una galería de manera que se pueda acceder a ella directamente, es decir, que se cargue la página inicial de las galería pero con la que me interesa ya cargada?

En primer lugar usamos el script que puse más arriba (y en el que no recuerdo bien quién me ayudó, vamos, que creo que no era mio):

Cita:
function seleccionar(){
ele=(location.search).split('?acceso=');
if(ele!=''){
ObtenerDatos(ele[1],'carrete');
}
else {
ObtenerDatos('paul_gilbert.html','carrete');
}
}
con lo que le decimos que si viene una petición que traiga la cadena de corte (?acceso=), coja la segunda mitad [1] y la añada a la función "ObtenerDatos", de manera que se cargará la página inicial y añadiendo:
<body onload="seleccionar();">
se ejecutará al cargar la función javascript que cargará el parámetro pasado por la url en el div correcto, y si viene vacía (sin parámetro), que cargue la que está prevista, la inicial.

Ahora ponemos en el enlace la dirección con el parámetro del split y el HTML que queremos que se cargue mediante ajax, y ya tenemos un enlace a la galería con la galería concreta cargada:

<a href="http://artsaia.com/salaconciertos/galeria/galeria.html?acceso=sala7_3.html">
http://artsaia.com/salaconciertos/ga...o=sala7_3.html</a>

No sé si estará suficientemente claro. Esto responde a tu duda sobre cómo acceder directo (espero).

Y para enlazarlo con todo el tema anterior, imagino que ese "galeria.html" lo cambiamos por un index.hml en esa carpeta, y el parámetro del corte ?acceso= por una almohadilla, y ya tenemos el caso del que hablabas al principio, que podría ser un ancla o no, según sea este caso que expongo o el que puse al principio.
__________________
Visita mi nueva web idplus.org

Última edición por Mikmoro; 16/01/2009 a las 12:57