Foros del Web » Programando para Internet » Javascript »

llamar a un ancla desde javascript

Estas en el tema de llamar a un ancla desde javascript en el foro de Javascript en Foros del Web. Quiero llamar a un ancla <a name="ancla"></a> en el mismo documento desde una función en javascript. He probado con Código: function llamaralancla(){ document.location.href = "#ancla"; ...
  #1 (permalink)  
Antiguo 15/10/2008, 08:58
Avatar de mrsorpresa  
Fecha de Ingreso: enero-2008
Mensajes: 323
Antigüedad: 16 años, 3 meses
Puntos: 6
llamar a un ancla desde javascript

Quiero llamar a un ancla <a name="ancla"></a> en el mismo documento desde una función en javascript. He probado con
Código:
function llamaralancla(){
document.location.href = "#ancla";
}
pero no funciona. Me lleva al index del site.

¿Alguna sugerencia?
  #2 (permalink)  
Antiguo 15/10/2008, 09:05
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Respuesta: llamar a un ancla desde javascript

Hola mrsorpresa

He probado tu código y me ha funcionado bien

Saludos,
  #3 (permalink)  
Antiguo 15/10/2008, 09:16
Avatar de mrsorpresa  
Fecha de Ingreso: enero-2008
Mensajes: 323
Antigüedad: 16 años, 3 meses
Puntos: 6
Respuesta: llamar a un ancla desde javascript

Cita:
Iniciado por JavierB Ver Mensaje
Hola mrsorpresa

He probado tu código y me ha funcionado bien

Saludos,
Pues lo he probado varias veces y no hay manera, desconozco por qué. A ver si me podeis decir alguna alternativa.
  #4 (permalink)  
Antiguo 15/10/2008, 10:17
Avatar de mrsorpresa  
Fecha de Ingreso: enero-2008
Mensajes: 323
Antigüedad: 16 años, 3 meses
Puntos: 6
Respuesta: llamar a un ancla desde javascript

Creo que el problema (que aun no he resuelto) es que la llamada se hace desde un archivo de extensión .tpl (es una template). He probado a hacer una llamada normal en html:
Código:
<a href="#ancla"> ir a "destino" </a>
Al poner el cursor encima del enlace, aparece que en lugar de buscar el ancla en el propio documento, lo busca en la propia raiz del sitio. Es decir:

Cuando hago click en el enlace al ancla desde el documento
Código:
www.mi_sitio.com/templates/una_pagina
en lugar de llevarme a
Código:
 www.mi_sitio.com/templates/una_pagina/#ancla
me lleva a
Código:
www.mi_sitio.com/#ancla
Así que el tema está en saber por qué desde ese archivo .tpl no se puede hacer una llamada al propio documento, o cómo se hace.

¿Alguien tiene alguna idea?
  #5 (permalink)  
Antiguo 15/10/2008, 10:26
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: llamar a un ancla desde javascript

Porqué hablás de archivos tpl? Acaso lo que ves en el navegador es una salida tpl o una salida html? Lo que importa siempre es la salida al navegador.
No será que tenés un tag base en el documento?
Una alternativa sería agregar un id al elemento de anclaje, calcular su propiedad offsetTop con alguna función como esta:
Código PHP:
function getElementPosition(elemID) {
var 
offsetTrail document.getElementById(elemID);
var 
offsetLeft 0;
var 
offsetTop 0;
while (
offsetTrail) {
offsetLeft += offsetTrail.offsetLeft;
offsetTop += offsetTrail.offsetTop;
offsetTrail offsetTrail.offsetParent;
}
if (
navigator.userAgent.indexOf("Mac") != -&& typeof document.body.leftMargin != "undefined" && navigator.appName=="Microsoft Internet Explorer" ) {
offsetLeft += parseInt(document.body.leftMargin);
offsetTop += parseInt(document.body.topMargin);
}
return {
left:offsetLefttop:offsetTop};

y luego despalazarse usando scrollTo.
  #6 (permalink)  
Antiguo 15/10/2008, 10:27
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: llamar a un ancla desde javascript

Acá vimos el tema:
http://www.forosdelweb.com/f13/ancla...na-web-550204/
  #7 (permalink)  
Antiguo 15/10/2008, 11:09
Avatar de mrsorpresa  
Fecha de Ingreso: enero-2008
Mensajes: 323
Antigüedad: 16 años, 3 meses
Puntos: 6
Respuesta: llamar a un ancla desde javascript

Muchas gracias por la respuesta, pero ya lo he solucionado

Era símplemente que tenía que llamar al archivo php, no al tpl. Es decir:

function llamaralancla(){
document.location.href = "documento.php#ancla";
}

Un saludo
  #8 (permalink)  
Antiguo 22/10/2010, 12:12
Avatar de TSU_Benjamin  
Fecha de Ingreso: julio-2009
Mensajes: 8
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: llamar a un ancla desde javascript

Muy bien, si funciona. Es un poco rudimentario pero funciona.
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 07:29.