Вопрос по hyperlink, javascript, anchor, click – Как программно щелкнуть ссылку с помощью JavaScript?

149

Есть ли способ нажать на ссылку на моей странице, используя JavaScript?

Вы можете предварительно выполнить «щелчок» только по элементам input type = "button". Ballsacian1

Ваш Ответ

11   ответов
2

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

В моем случае я не знаю, имеет ли ссылка цель "_blank", поэтому я не знаю, должен ли я использовать location.href или window.open. Короче отправить клик. Существуют варианты использования, например, вы можете запустить событие, например, открыть модалбокс. dxvargas
1

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

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

1

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

<script> var myVar = setInterval(function ({document.getElementById("test").click();}, 500); setInterval(function () {clearInterval(myVar)}, 1000); </script>
12

Просто так:

<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>
да, вы правы, я думал, что он просил по нажатию другой ссылки .. Canavar
спасибо за помощь, но я использую Firefox 3, и он не работает, в консоли ошибок появляется сообщение об ошибке: document.getElementById ("myLink"). click не является функцией Jason Kolok
но нажатие на ссылку работает, просто .click не работает Jason Kolok
Да, но тогда должен произойти какой-то другой щелчок. Ólafur Waage
Разве вы не можете сделать это на каком-либо событии, например, загрузке страницы? Bill the Lizard
201
document.getElementById('yourLinkID').click();
На самом деле, пока это работает во всех браузерах, которые я пробовал, включая IE, Safari, Chrome, Firefox и Opera. arik
Обратите внимание, что если ссылка имеетtarget="_blank" свойство, блокировщик всплывающих окон браузера будет активирован для нового окна. wonsuc
Никогда не видел этих сильно опущенных ответов на простой вопрос. Чувствует себя как поле битвы Kermit_ice_tea
-2

ь полный контроль над тем, что происходит, когда происходит событие.

То, что вы можете сделать, это нажать на нагрузку на тело. У W3Schools есть примерВот.

@Neolit это была плохая ссылка, прежде чем она все равно получила 404. Без потерь John Dvorak
хм, вы правы, может он просит об этом .. Canavar
плохая ссылка. Я получаю 404 user1927944
w3fools.com Iulian Onofrei
8

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

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

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

$('#LinkID')[0].click();
Это не работает? Вы пробовали это? Надеюсь, вы понимаете, что означает «LinkID». Я был бы очень удивлен, если бы кто-то сейчас достаточно отсталый для js без jQuery. В любом случае, не стесняйтесь понижать голос после получения некоторых очков Muhammad Waqas Iqbal
Для меня это тоже не сработалоa ссылка. С помощью[0].click() версия работает, что я считаю, так же, какdocument.getElementById('yourLinkID').click(); ответ. Mmm
Это действительно не работает. Sajib Acharya
Это не работает. Это не ответ на вопрос, который он задал. Я бы дал отрицательный ответ на это, если бы у меня было больше очков. Tilak raj
Я попробовал это, и ссылка mailTo не работает в React Native. Используйте это: window.location.href = "mailto: [email protected]"; fungusanthrax
34

вы можете сделать это, просто выполнив это в Javascript:

location.href = "http://www.example.com/test";
Я тоже пробовал звонитьclick() метод, предложенный в другом месте и выше, и он не работает в IE9, но настройкаlocation.href на самом деле отправил письмо отmailto: ссылка. Отличное решение! ajeh
Отклонено, потому что мне не нравятся ответы, которые отвечают вокруг варианта использования, а не адресуют его. «Я предполагаю, что это ваше намерение, и я не знаю о ваших ограничениях, поэтому с концептуальной сферой в концептуальной вакцине: используйте это». cazlab
Я проголосовал, потому что я искал хорошее решениеmailto: ссылка в скрипте userjs. Определенно сэкономил мне время. Я был готов создатьa элемент и сделать некоторый «программный клик»stackoverflow.com/questions/809057/... A.D.
-2

когда ...

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

var signUperror = document.getElementById('handleError')

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

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

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;
    }
}
прекрасно работает и в Chrome. Спасибо! Dvir Azulay
Мэтью прав, иstackoverflow.com/questions/809057/... есть больше информации о том, почему. Кросс-браузер это весело :) Dan F
это не уважаетtarget атрибут или<base target="frame"> Vitim.us
1

ользовать найденный конструкторВот

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

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

Я не понимаю, почему событие устанавливается дважды. Я не вижу, как event = new CustomEvent ('click'); является эталонным событием, так в чем же смысл вар ... historystamp

Похожие вопросы