Как выбрать <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, время: 01:41. |