Comunidad de diseño web y desarrollo en internet online

Problema para abrir un enlace determinado con ajax

Citar            
MensajeEscrito el 27 Abr 2010 07:21 pm
Buenas a todos y gracias de antemano.
El problema es el siguiente:
Los enlaces a las diferentes páginas los hago mediante el código js que copio abajo, pero si quiero abrir la página en una determinada etiquete (ej. #video) no me funciona, siempre abre la página en el comienzo de la misma.

Codigo JS
// Documento JavaScript
// Esta función cargará las paginas
function llamarasincrono(url, id_contenedor){
var pagina_requerida = false
if (window.ActiveXObject) {// Si es Mozilla, Safari etc
pagina_requerida = new ActiveXObject("Msxml2.XMLHTTP") //Msxml2.XMLHTTP
} else if (window.XMLHttpRequest){ // pero si es IE
try {
pagina_requerida = new XMLHttpRequest()
}
catch (e){ // en caso que sea una versión antigua
try {
pagina_requerida = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
pagina_requerida.onreadystatechange=function(){ // función de respuesta
cargarpagina(pagina_requerida, id_contenedor)
}
pagina_requerida.open ('GET', url, true) // asignamos los métodos open y send
pagina_requerida.send (null)
}
// todo es correcto y ha llegado el momento de poner la información requerida
// en su sitio en la pagina xhtml
function cargarpagina(pagina_requerida, id_contenedor){
if (pagina_requerida.readyState == 4 && (pagina_requerida.status==200 || window.location.href.indexOf("http")==-1))
document.getElementById(id_contenedor).innerHTML=pagina_requerida.responseText
}

Así llamo a los enlaces:
<a href="javascript:llamarasincrono('producto1.html', 'contenido');">

si le agrego la etiqueta no lo toma
<a href="javascript:llamarasincrono('producto1.html#video', 'contenido');">

Por mrodrigues

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 29 Abr 2010 08:09 pm
no no no no no!!!!!!!!! ........

señor siempre esfuércese en entender lo que hace y no a limitarse a un copy/paste, si no nunca tendrá el privilegio del saber...

bueno después del regaño por la pésima practica del copy/paste.. te explico...

uno AJAX, carga información del servidor, no es un abrir mágico de otras paginas que no es mi pagina ni, ni un div que se comporta como iframe, lo que se hace en AJAX es que se trae información del servidor sin tener que hacer un refesh de la pagina, algunos solo traen trozos de HTML (tu caso), otros traen XML con información que esto es lo que se le llama AJAX, u otros manejamos JSON's, otros simplemente un texto.

al hacer un AJAX no sales de tu pagina si no que se carga y se coloca la respuesta en determinado lugar del DOM, en el caso lo que quieres hacer es que al "abrir" una de tus paginas que mas bien es cargar, valla a determinada parte de la pagina (un ancla), esto no te va a funcionar ya que JavaScript lo que hace es cargar el trozo de html que tienes en producto1.html por que esa es la url que le estas pasando, mas nunca se va a dirrigir a la ancla #video, para eso tedrias que hacer un window.open("#video"); exactamente después de la carga

Por wariodiaz

55 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Abr 2010 11:01 am
Muchas gracias wariodiaz, por el regaño y la respuesta, ambos me hicieron ver que debo esforzarme un poco mas, antes de postear una consulta.
Saludos.
Buen fin de semana.

Por mrodrigues

1 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.