Как перемещаться по href в теге привязки через JavaScript - PullRequest
7 голосов
/ 02 марта 2009

Есть ли простой способ, чтобы JavaScript имитировал пользователя, щелкающего тег привязки на странице? Это означает, что URL-адрес реферера должен быть установлен. Просто установка document.location.href не устанавливает URL реферера.

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

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

Это не работает, потому что для ссылки нет настройки события Click ().

Ответы [ 5 ]

14 голосов
/ 02 марта 2009

Вы можете сделать:

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

Если вы хотите сохранить реферера, вы можете сделать это:

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

Это хакерский, но работает во всех браузерах.

2 голосов
/ 13 января 2015
document.location.href = "#wanted_Location";
1 голос
/ 11 апреля 2017

Существует более простой способ добиться этого,

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

Использование простого JavaScript для имитации клика.

Вы можете проверить рабочий пример здесь на jsFiddle .

1 голос
/ 02 марта 2009

Может быть, что-то вроде этого вы ищете?

$(document).ready(function () {
  $("a").each(function(){
    if($(this).click()){
      document.location.href = $(this).attr("href");
    }
  });
});
0 голосов
/ 02 марта 2009

Хорошо, реферер не устанавливается с помощью document.location (согласно моему другому ответу), может работать с window.navigate (url)? Если это не сработает, то может быть следующее, хотя это ужасно ужасно:

$(function() {
  $("a").each(function(){
    if($(this).click()){
      $('<form method="get" action="' + $(this).attr("href") + '"></form>').appendTo("body").submit();
      return false;
    }
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...