Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Случайная ссылка в новом окне (нужна помощь) (https://javascript.ru/forum/misc/70186-sluchajjnaya-ssylka-v-novom-okne-nuzhna-pomoshh.html)

ytREDFOX 17.08.2017 20:18

Случайная ссылка в новом окне (нужна помощь)
 
Добрый день, друзья!
Столкнулся с такой проблемой. Есть код:
<script>
   
       var links = [
                        "ссылка 1",
                        "ссылка 2",
                        "ссылка 3",
                        "ссылка 4"
                    ];
 
        function openRandLink (links, tr) {
            var a = document.createElement ("a"),
                f = function () {
                    document.body.appendChild (a);
                    a.click ();
                    a.parentNode.removeChild (a);
                };
            a.style.opacity = "0";
            a.href = links[Math.floor (Math.random () * links.length)];
            a.target = "_blank";
            setTimeout (f, tr * 1000);
        }
        window.addEventListener ("load", function () {
            openRandLink (links, 3);
        });
     </script>

Код открывает случайную ссылку через ~3 секунды после загрузки страницы. Пытался переделать код таким образом, чтобы он срабатывал только при клике, но как-то не преуспел в этом.
Насколько я понимаю, в ссылке необходимо прописать <a href="openRandLink (links, tr)"> текст ссылки </a>, но убрав строчку (setTimeout (f, tr * 1000);) скрипт не срабатывает. Помогите разобраться в возникшей проблеме. Заранее спасибо!

рони 17.08.2017 20:32

ytREDFOX,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>

  <script>

       var links = [
                        "ссылка 1",
                        "ссылка 2",
                        "ссылка 3",
                        "ссылка 4"
                    ];

        function openRandLink (links, tr) {
            var a = document.getElementById("test");
            var link = links[Math.floor (Math.random () * links.length)];
            a.href = link;
            a.target = "_blank";
            a.text = link;
        }
        window.addEventListener ("load", function () {
            openRandLink (links);
        });
     </script>

</head>

<body>
<a id="test"></a>

</body>
</html>

ytREDFOX 17.08.2017 20:55

Если я все правильно понял, то Вы убрали элементы таймера и приписали к тегу "а" появление случайной ссылки. Возможно, я не так описал проблему: нужно не появление самой ссылки в новом окне, а чтобы случайная ссылка открывалась в новой вкладке после клика.

PS Извините, за мой неправильный подход к формированию поста и описанию проблемы.

рони 17.08.2017 21:07

Цитата:

Сообщение от ytREDFOX
чтобы случайная ссылка открывалась в новой вкладке после клика

что не так?

ytREDFOX 17.08.2017 21:14

рони, Спасибо большое, разобрался!


Часовой пояс GMT +3, время: 19:09.