2009-03-02 8 views
6

Existe-t-il un moyen facile d'imiter JavaScript lorsqu'un utilisateur clique sur une balise d'ancrage sur une page? Cela signifie que l'URL de référent doit être définie. Le simple paramétrage de document.location.href ne définit pas l'URL de référent.Comment naviguer dans href dans une balise d'ancrage via JavaScript

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

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

Cela ne fonctionne pas car il n'existe pas de configuration d'événement Click() pour le lien.

Répondre

14

Vous pourriez faire:

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

Si vous voulez garder le referrer, vous pouvez le faire:

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

Il est hackish, mais fonctionne dans tous les navigateurs.

+0

Je ne pense pas que cela fonctionne afin d'obtenir l'URL Referrer. J'ai mis à jour la question pour refléter cela. –

+0

Mm. Il le fait sur Firefox, mais pas sur IE. En regardant dedans. –

+0

Vous pouvez simplement utiliser window.location.assign() si vous souhaitez conserver l'URL de provenance, donc le code sera alors window.location.assign ("http: // localhost /"); – fedmich

1

Peut-être que quelque chose comme ça est ce que vous cherchez?

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

Cela ne fonctionne pas car l'URL Referrer n'est pas définie. J'ai mis à jour la question –

0

Ok, referer ne va pas régler à l'aide document.location (selon mon autre réponse), pourrait travailler avec window.navigate (url)? Si cela ne fonctionne pas la puissance suivante, mais il est tout à fait - EHRM - laid:

$(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

Il y a une façon plus simple pour y parvenir,

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); 

utilisation de javascript simple pour simuler un clic.

Vous pouvez vérifier l'exemple de travail ici sur jsFiddle.

Questions connexes