Ver Mensaje Individual
  #7 (permalink)  
Antiguo 10/07/2009, 04:25
Leunamal
 
Fecha de Ingreso: abril-2009
Mensajes: 66
Antigüedad: 15 años
Puntos: 0
Mensaje Respuesta: Enlaces alternativos a enlaces con javascript

Cita:
Iniciado por PatomaS Ver Mensaje
Hola

Creo que algunas cosas se te han mezclado. Aunque vas por buen camino.

Veamos.

Los popups no los puedes abrir desde el servidor, solo los puedes abrir desde el cliente, o mejor dicho, solo los puede abrir el navegador siguiendo una orden window.open de js; bueno, activex también vale, pero no es el caso.

Para detectar el vínculo en el servidor, basta con que leas las variables de servidor, algo como $_SERVER de php y ahí busca el referer, o si quieres, un argumento en el vínculo.

Lo de los argumentos es por si usas vínculos del tipo: pagina.jsp?id=1.

El servidor solo puede enviar páginas al navegador, la cual se mostrará en la ventana del navegador qu eha hecho la petición, si quieres que el contenido se abra en un popup, deberás hacerlo desde un js.

Revisa este artículo que te puede ayudar a abrir popups de forma accesible o en su defecto, a cargar las páginas en la misma ventana del navegador; por supuesto estas debe estar completas y tú mencionas que las que tienes son solo fragmentos.

Aunque veo tu caso, no termino de ver el problema o complicación, o la necesidad de tener archivos con fragmentos en vez de completos. Si puedes poner la dirección de la página, puede ayudar a nuestra interpretación.

Felicidad
Hola PatomaS, ya he solucionado mi problema :)

Hice lo que comenté, cambie los enlaces para ponerlos de esta forma:

Código:
<a href="contenido/p1.html" target="_blank">Explicación Teorica</a
De forma que si no está javascript habilitado se abren las páginas fuera de la página principal. Me doy por vencido lo de cargar el contenido en la propia página. Sucede lo que comentabas, que jsp es para el lado del servidor y para el lado del cliente se debería hacer con javascript. Pero aún así no queda tan mal. Al menos se cumple de que se pueden acceder a los contenidos accesibles.

En la portada de la web cuando no está habilitada el javascript he cargado un fragmento de código que es el contenido de la portada pero quitandole el doctype, las etiquetas body, etc... Cargo ese contenido de esta manera:

Código:
<noscript>	
	          <div id="error">
    		      <p> Para utilizar esta página, JavaScript debe estar habilitado. 
          		  </p>
          	 </div>
          	 <%= LeerFichero("contenido/portada-error.html") %>
          </noscript>
LeerFichero es una función de jsp que devuelve un String cuyo contenido es el contenido del fichero. De esta manera si no está habilitado el javascript se carga el contenido de ese fichero y se podrá ver la portada perfectamente.

Aunque los enlaces los haya puesto con target="_blank, el código de javascript (utilizando jquery) lo que hace es cargar el contenido de esa página en el div que yo he especificado de esa manera no se me abre en ninguna parte.

Pongo el código por si a alguien le hace falta:
Código:
window.onload= function()
{
	//References
	var sections = $("a");//document.getElementsByTagName("a");//;
	var loading = $("#loading");
	var content = $("#contenido");//document.getElementById("#cont-pcpal-cuerpo"); //
	
	sections.click(function(e){
		var my_anchor = $(this).attr("href");
		showLoading();
		if(my_anchor != "#"){
			content.slideUp("slow", function(){	content.load(my_anchor, hideLoading);	} );
			content.slideDown();
		}
	return(false);
	});

	//show loading bar
	function showLoading(){
		loading
			.css({visibility:"visible"})
			.css({opacity:"1"})
			.css({display:"block"})
		;
	}
	//hide loading bar
	function hideLoading(){
		//loading.fadeTo(1000, 0);
	};
	
	//Se carga la portada de la página al abrir la página:
	content.load("portada.html");
}
Está basado en un ejemplo de ajax accesible: http://www.hellogoogle.com/examples/contentajax/

Del ejemplo de está página me di cuenta que no hay ningun problema crear las páginas de contenido con las cabeceras y poniendo de nuevo las etiquetas body, html, etc...

La verdad es que me ha venido muy bien el ejemplo ese.

Lo suyo es que se cargasen dentro de la etiqueta #contenido, pero bueno... creo que sería complicado intentar hacerlo con jsp.

Un saludo y gracias PatomaS.