Как программно щелкнуть ссылку с помощью JavaScript? - PullRequest
156 голосов
/ 24 мая 2009

Можно ли щелкнуть ссылку на моей странице с помощью JavaScript?

Ответы [ 11 ]

214 голосов
/ 18 сентября 2010
document.getElementById('yourLinkID').click();
45 голосов
/ 24 мая 2009

Эта функция работает как минимум в Firefox и Internet Explorer. Он запускает все обработчики событий, прикрепленные к ссылке, и загружает связанную страницу, если обработчики событий не отменяют действие по умолчанию.

function clickLink(link) {
    var cancelled = false;

    if (document.createEvent) {
        var event = document.createEvent("MouseEvents");
        event.initMouseEvent("click", true, true, window,
            0, 0, 0, 0, 0,
            false, false, false, false,
            0, null);
        cancelled = !link.dispatchEvent(event);
    }
    else if (link.fireEvent) {
        cancelled = !link.fireEvent("onclick");
    }

    if (!cancelled) {
        window.location = link.href;
    }
}
36 голосов
/ 24 мая 2009

Если вы хотите изменить только адрес текущей страницы, вы можете сделать это, просто выполнив это в Javascript:

location.href = "http://www.example.com/test";
12 голосов
/ 24 мая 2009

Просто так:

<a id="myLink" onclick="alert('link click');">LINK 1</a>
<a id="myLink2" onclick="document.getElementById('myLink').click()">Click link 1</a>

или при загрузке страницы:

<body onload="document.getElementById('myLink').click()">
...
<a id="myLink" onclick="alert('link click');">LINK 1</a>
...
</body>
8 голосов
/ 24 сентября 2015

JQuery способ щелкнуть ссылку -

$('#LinkID').click();

Для mailTo ссылку, вы должны написать следующий код

$('#LinkID')[0].click();
2 голосов
/ 24 мая 2009

Вы можете просто перенаправить их на другую страницу. На самом деле заставить его буквально щелкнуть по ссылке и перейти к нему кажется странным, но я не знаю всей истории.

1 голос
/ 03 мая 2017

Многие из вышеперечисленных методов устарели. Теперь рекомендуется использовать найденный конструктор здесь

function clickAnchorTag() {
    var event = document.createEvent('MouseEvent');
    event = new CustomEvent('click');
    var a = document.getElementById('nameOfID');
    a.dispatchEvent(event);
}

Это приведет к щелчку по тегу привязки, но он не будет отображаться, если блокировщики всплывающих окон активны, поэтому пользователю потребуется разрешить всплывающие окна.

1 голос
/ 07 февраля 2017

Для меня мне удалось заставить это работать таким образом. Я развернул автоматический клик за 5000 миллисекунд, а затем замкнул цикл через 1000 миллисекунд. Тогда был только 1 автоматический клик.

<script> var myVar = setInterval(function ({document.getElementById("test").click();}, 500); setInterval(function () {clearInterval(myVar)}, 1000); </script>
1 голос
/ 24 мая 2009

Вместо клика, можете ли вы переадресовать на URL, по которому клик будет идти с использованием Javascript?

Может быть, вы могли бы положить что-то в тело на загрузку, чтобы идти туда, куда вы хотите.

0 голосов
/ 05 августа 2015

Функция JS на стороне клиента для автоматического перехода по ссылке, когда ...

Вот пример, в котором вы проверяете значение скрытого ввода формы, в котором хранится ошибка, переданная с сервера. Ваш клиентский JS-сервер затем проверяет его значение и заполняет ошибку в другом указанном вами месте. . в этом случае модал всплывающего логина.

var signUperror = document.getElementById('handleError')

if (signUperror) {
  if(signUperror.innerHTML != ""){
  var clicker = function(){
    document.getElementById('signup').click()
  }
  clicker()
  }
}
...