2009-03-02 33 views
6

¿Hay una manera fácil de tener JavaScript imitar a un usuario que hace clic en una etiqueta de anclaje en una página? Eso significa que la Url de referencia debe establecerse. El solo hecho de configurar document.location.href no establece la URL de referencia.Cómo navegar href en la etiqueta de anclaje a través de JavaScript

<script> 
    $(document).ready(function() { 
    $("a").click(); 
}); 
</script> 

<a href="http://example.com">Go here</a> 

Esto no funciona porque no hay una configuración de evento Click() para el enlace.

Respuesta

14

que podría hacer:

window.location = $("a").attr("href"); 

Si desea mantener la de referencia, se puede hacer esto:

var href = $('a').attr('href'); 
$('<form>').attr({action: href, method: 'GET'}).appendTo($('body')).submit(); 

Es hacker, pero funciona en todos los navegadores.

+0

No creo que esto funcione para obtener la URL de referencia. Actualicé la pregunta para reflejar esto. –

+0

Mm. Lo hace en Firefox, pero no en IE. Buscando dentro. –

+0

Puede usar window.location.assign() si desea mantener la URL de referencia, por lo que el código será window.location.assign ("http: // localhost /"); – fedmich

1

Tal vez algo como esto es lo que estás buscando?

$(document).ready(function() { 
    $("a").each(function(){ 
    if($(this).click()){ 
     document.location.href = $(this).attr("href"); 
    } 
    }); 
}); 
+0

Esto no funciona porque la URL de referencia no se establece. Actualicé la pregunta –

0

bien, árbitro no consigue establecer usando document.location (como por mi otra respuesta), podría funcionar con window.navigate (URL)? Si eso no funciona de la siguiente fuerza, aunque es bastante - ehm - fea:

$(function() { 
    $("a").each(function(){ 
    if($(this).click()){ 
     $('<form method="get" action="' + $(this).attr("href") + '"></form>').appendTo("body").submit(); 
     return false; 
    } 
    }); 
}); 
1

document.location.href = "#wanted_Location";

0

Hay una manera más simple para lograrlo,

HTML

<a href="https://getbootstrap.com/" id="fooLinkID">Bootstrap is life </a> 

JavaScript

// Simulating click after 3 seconds 
setTimeout(function(){ 
    document.getElementById('fooLinkID').click(); 
}, 3 * 1000); 

uso de JavaScript sencillo para simular un clic.

Puede verificar el ejemplo de trabajo aquí en jsFiddle.

Cuestiones relacionadas