У меня есть HTML-выбор на странице. У меня есть функция тайм-аута, где я устанавливаю значение этого элемента выбора. Моя проблема в том, что если пользователь открывает этот выбор до запуска функции тайм-аута, я не могу установить значение в нем.
В Chrome установлено значение выбора, и раскрывающийся список выбора автоматически закрывается.
В Safari значение выбора не установлено, и раскрывающийся список никогда не закрывается.
Это мой HTML:
<select id="mySelect">
<option value="-">-</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
Это мой JS:
setTimeout(function () {
console.info('in timeout');
var select = document.getElementById("mySelect");
document.getElementsByTagName('body')[0].click();
select.value = "3";
select[3].click();
console.info('in timeout end');
}, 7000);
Это ссылка на кодовый блок, которая воспроизводит это поведение:
https://codepen.io/annmirosh9/pen/WqNEEq
Я тестировал его в Safari версии 12.0.3, и если я открою раскрывающийся список сразу после загрузки страницы, раскрывающийся список никогда не закроется и значение там не будет установлено.
Подскажите, пожалуйста, что я пропустил и как я могу заставить этот пример работать?