Как выбрать <select> и активировать последствия?
В каком-то скрипте (например Google Translate https://www.w3schools.com/howto/howt..._translate.asp ) если выбрать один из вариантов в меню <select>, то активируется вундервафля (активируются окна, подгружаются данные, спутник отправляется в космос, Вселенная аннигилируется).
Если я нажму CTRL-Shift-I в браузере и наберу в консоли
document.getElementsByTagName("select")[0].value="dayteMneVundervaflyu"
, то выберется нужный мне пункт меню, но вундервафля не активируется. А как сделать так, чтобы активировалась? В Селениуме я так делал, а как делать в чистом ДЖС из браузера не знаю. |
Попробуйте потом
document.getElementsByTagName("select")[0].dispatchEvent(new Event('change'));
|
Цитата:
document.getElementsByTagName("select")[0].dispatchEvent(new Event('change')); document.getElementsByTagName("select")[0].dispatchEvent(new Event('change'));
|
Может это как то связано с тем, что вы вводите в консоле.
В скрипте на странице хватает одного раза. |
Цитата:
<p>Labas rytas!</p>
<div id="google_translate_element"></div>
<script>
function googleTranslateElementInit() {
new google.translate.TranslateElement({pageLanguage: 'lt'}, 'google_translate_element');
}
</script>
<script type="text/javascript" src="https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
<script>
setTimeout(function(){
document.getElementsByTagName("select")[0].dispatchEvent(new Event('change'));
document.getElementsByTagName("select")[0].dispatchEvent(new Event('change'));
}, 1000);
</script>
</body>
</html>
|
Хотя можно и так:
<p>Labas rytas!</p>
<div id="google_translate_element"></div>
<script>
function googleTranslateElementInit() {
new google.translate.TranslateElement({pageLanguage: 'lt'}, 'google_translate_element');
}
</script>
<script src="https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
<script>
setTimeout(function(){
document.getElementsByTagName("select")[0].value="ru";
document.getElementsByTagName("select")[0].dispatchEvent(new Event('change'));
}, 1000);
</script>
</body>
</html>
|
Я проверял не сразу при загрузке страницы, а после какого-нибудь клика.
|
| Часовой пояс GMT +3, время: 10:25. |