Как автоматически щелкнуть ссылку внутри div - PullRequest
0 голосов
/ 06 июля 2019

Я пытаюсь автоматически щелкнуть первую ссылку внутри div после небольшой задержки, но мой код не работает. Что здесь не так?

//HTML
<div id="main">
<p>The first paragraph.</p>
<a href="https://www.google.com" target="_blank">Google link</a>
<p>The second paragraph.</p>
</div>

//Just checking that I selected the link
<p id="demo"></p>

<script>
var x = document.getElementById("main");
var y = x.getElementsByTagName("a");

//Here's just checking I got the link
document.getElementById("demo").innerHTML = 
'The first link (index 0) inside "main" is: ' + y[0].href;

//Here's the timer
    window.setTimeout("autoClick()", 2000);

//And this is what isn't working...
function autoClick() {
var linkPage = y[0];
window.location.href = linkPage;
}
</script>

Я, очевидно, упускаю что-то довольно очевидное, потому что автоклик не работает, но не вижу его для поиска - может кто-нибудь увидеть, какую элементарную ошибку я делаю, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 06 июля 2019

Вам необходимо использовать getAttribute('href'), чтобы получить значение href. Ваша строка должна гласить:

window.location.href = linkPage.getAttribute('href');

Ваш полный код должен выглядеть (немного отформатирован и улучшен):

<div id="main">
    <p>The first paragraph.</p>
    <a href="https://www.google.com" target="_blank">Google link</a>
    <p>The second paragraph.</p>
</div>

<p id="demo"></p>

<script>

    let x = document.getElementById("main");
    let y = x.getElementsByTagName("a");

    // Test code...
    document.getElementById("demo").innerHTML = 'The first link (index 0) inside "main" is: ' + y[0].href;

    // Auto click after 2 seconds...
    window.setTimeout(autoClick, 2000);

    function autoClick() {
        window.location.href = y[0].getAttribute('href');
    }

</script>

Примечания

  • Используйте let вместо var
  • Вам не нужны скобки или кавычки при вызове функции autoClick
  • Нет необходимости создавать переменную linkPage, просто используйте y[0].
0 голосов
/ 06 июля 2019
window.location.href = linkPage.getAttribute('href')

Также

setTimeout(autoClick, 2000)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...