8

Is there an easy way to have JavaScript mimic a User clicking an anchor tag on a page? That means the Referrer Url needs to be set. Just setting the document.location.href doesn't set the Referrer Url.

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

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

This doesn't work because there isn't a Click() event setup for the link.

5 Answers 5

14

You could do:

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

If you want to keep the referrer, you could do this:

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

It is hackish, but works in all browsers.

Sign up to request clarification or add additional context in comments.

3 Comments

I don't think this works in order to get the Referrer Url. I updated the question to reflect this.
Mm. It does on Firefox, just not on IE. Looking into it.
You can just use window.location.assign() if you want to keep referrer url, so the code will then be window.location.assign("localhost/");
2
document.location.href = "#wanted_Location";

Comments

1

Maybe something like this is what you're looking for?

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

1 Comment

This doesn't work for because the Referrer Url doesn't get set. I updated the question
1

There is a simpler way to achieve it,

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

Using plain javascript to simulate a click.

You can check working example here on jsFiddle.

Comments

0

Okay, referer doesn't get set using document.location (as per my other answer), might work with window.navigate(url)? If that doesn't work the following might, though it's quite - ehrm - ugly:

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.