Как установить ссылку по умолчанию с помощью javascript?

Я пытаюсь установить ссылку по умолчанию в модальном окне, но не работаю (я новичок в javascript).

Это мой полный код:

    <a href = "#my-id" data-uk-modal = "{center:true}"></a>
    <button class = "md-btn md-btn-success" id = "openmodal" data-uk-modal = "{target:'#my_id', keyboard: false, bgclose: false}" style = "display:none !important;"></button>

    <div class = "uk-modal" id = "my_id">  
       <div class = "uk-modal-dialog">
           <div class = "uk-modal-header">
              <div uk-grid class = "uk-grid">
                <div class = "modal-block">
                 <h3>Project</h3>
    <b>project description, lorem ipsum... <a href = "https://www.instagram.com/user/">instagram</a></b>
             </div>
               <div class = "modal-block">
               <h3>Terms</h3>
    <b>terms description</b>
              </div>
               <div class = "modal-block">
                <h3>Cookies</h3>
    <b>cookies description</b>
               </div>
           </div>
         </div>

                    <div class = "uk-modal-footer uk-clearfix">
                    <a id = "default-link" uk-tooltip = "{title: okay, i accept!; pos: bottom}" class = "us--main-button uk-float-right entersite uk-modal-close" href = "javascript:void(0)">Accept and enter</a>
                    <a  id = "dont-def" uk-tooltip = "{title: I do not agree!; pos: bottom}" class = "us--leave-button uk-float-right" href = "https://google.com">Deny and leave</a>
         </div>
      </div>
    </div>


    <script>
     $(document).ready(function(){
       $('#openmodal').trigger('click');
    })  
    </script>
    <script>
    window.onload = function() {
       document.getElementById("default-link").focus();
    };
    </script>

Когда я открываю страницу в любом браузере, указанная по умолчанию ссылка будет первой (instagram) ... Что в этом плохого?

Опубликованный код работает, что либо означает, что браузер, который вы пробовали, не работает, либо отсутствует код, который его не делает.

Ason 10.06.2018 15:20

Я обновил свой вопрос ... не работает даже в любом браузере ...

Galgóczi Levente 10.06.2018 15:28
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
2
125
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Этот код работает, когда дело доходит до фокусировки ссылки, хотя, если одно нажатие Enter (или щелчок по ней) ничего не произойдет, так как вы отменили его действие с помощью href = "javascript:void(0)".

Вот пример, показывающий, что focus() действительно работает.

Нажмите «Выполнить фрагмент кода» и нажмите «Ввод», и вы получите предупреждение.

window.onload = function() {
    document.getElementById("default-link").focus();
};
<div class = "uk-modal" id = "my_id">
  <div class = "modal-block">
    lorem ipsum... <a href = "https://www.instagram.com/user/">instagram</a>
  </div>
  <div class = "modal-footer">
    <a id = "default-link" class = "uk-modal-close" href = "javascript:alert('Accept')">Accept and enter</a>
    <a class = "uk-float-right" href = "https://google.com">Deny cookies and leave</a>
  </div>
</div>

Я обновил свой вопрос полным кодом, потому что он не работает ... Вот все ... Я пробую с href = "javascript:alert('Accept')", но тоже не работает: /

Galgóczi Levente 10.06.2018 16:21

@ GalgócziLevente Попробуйте переместить свой document.getElementById("default-link").focus();, чтобы он запускался после $('#openmodal').trigger('click'); ... и ваш обновленный код все еще работает при добавлении href = "javascript:alert('Accept')" по ссылке

Ason 10.06.2018 16:31

не работает ... Я пробую 20 различных комбинаций сейчас в трех разных браузерах ...: S Очень неприятно

Galgóczi Levente 10.06.2018 16:36

@ GalgócziLevente Поскольку существующий код работает здесь, во фрагменте Stack, мы мало что можем сделать. Вам необходимо предоставить фрагмент кода, который и здесь не работает.

Ason 10.06.2018 16:38

вау, теперь работаю! Я ничего не делаю с этой частью своего кода в последние несколько часов, я работал над другой частью, но теперь, несколько минут назад, начал работать ... странно ...: D

Galgóczi Levente 10.06.2018 23:41

@ GalgócziLevente Звучит здорово

Ason 11.06.2018 00:07

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

Итак, лучшее решение html5, очень простое, и оно действительно используется по умолчанию для любого вашего элемента, независимо от загрузки страницы или документа:

<div autofocus> 
autofocus не работает с div, он работает только с элементами форма, такими как, например, input.
Ason 11.07.2018 14:54

Другие вопросы по теме