Я пытаюсь установить ссылку по умолчанию в модальном окне, но не работаю (я новичок в 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) ... Что в этом плохого?
Я обновил свой вопрос ... не работает даже в любом браузере ...



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Этот код работает, когда дело доходит до фокусировки ссылки, хотя, если одно нажатие 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ócziLevente Попробуйте переместить свой document.getElementById("default-link").focus();, чтобы он запускался после $('#openmodal').trigger('click'); ... и ваш обновленный код все еще работает при добавлении href = "javascript:alert('Accept')" по ссылке
не работает ... Я пробую 20 различных комбинаций сейчас в трех разных браузерах ...: S Очень неприятно
@ GalgócziLevente Поскольку существующий код работает здесь, во фрагменте Stack, мы мало что можем сделать. Вам необходимо предоставить фрагмент кода, который и здесь не работает.
вау, теперь работаю! Я ничего не делаю с этой частью своего кода в последние несколько часов, я работал над другой частью, но теперь, несколько минут назад, начал работать ... странно ...: D
@ GalgócziLevente Звучит здорово
Я только сейчас нахожу действительно лучшее решение для этого, потому что window.onload работает медленно, а при загрузке сайта ссылка по умолчанию находится над первой ссылкой на текущей странице ...
Итак, лучшее решение html5, очень простое, и оно действительно используется по умолчанию для любого вашего элемента, независимо от загрузки страницы или документа:
<div autofocus>
autofocus не работает с div, он работает только с элементами форма, такими как, например, input.
Опубликованный код работает, что либо означает, что браузер, который вы пробовали, не работает, либо отсутствует код, который его не делает.