Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.11.2021, 14:21
Кандидат Javascript-наук
Отправить личное сообщение для jaroslav.tavgen Посмотреть профиль Найти все сообщения от jaroslav.tavgen
 
Регистрация: 18.09.2014
Сообщений: 128

Как выбрать <select> и активировать последствия?
В каком-то скрипте (например Google Translate https://www.w3schools.com/howto/howt..._translate.asp ) если выбрать один из вариантов в меню <select>, то активируется вундервафля (активируются окна, подгружаются данные, спутник отправляется в космос, Вселенная аннигилируется).

Если я нажму CTRL-Shift-I в браузере и наберу в консоли

document.getElementsByTagName("select")[0].value="dayteMneVundervaflyu"
,

то выберется нужный мне пункт меню, но вундервафля не активируется. А как сделать так, чтобы активировалась? В Селениуме я так делал, а как делать в чистом ДЖС из браузера не знаю.
Ответить с цитированием
  #2 (permalink)  
Старый 30.11.2021, 14:56
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 1,670

Попробуйте потом
document.getElementsByTagName("select")[0].dispatchEvent(new Event('change'));
Ответить с цитированием
  #3 (permalink)  
Старый 30.11.2021, 15:19
Кандидат Javascript-наук
Отправить личное сообщение для jaroslav.tavgen Посмотреть профиль Найти все сообщения от jaroslav.tavgen
 
Регистрация: 18.09.2014
Сообщений: 128

Сообщение от voraa Посмотреть сообщение
Попробуйте потом
document.getElementsByTagName("select")[0].dispatchEvent(new Event('change'));
Очень странный эффект: в случае с Google Translate работает! Но только если написать 2 раза:

document.getElementsByTagName("select")[0].dispatchEvent(new Event('change')); document.getElementsByTagName("select")[0].dispatchEvent(new Event('change'));
Ответить с цитированием
  #4 (permalink)  
Старый 30.11.2021, 16:11
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 1,670

Может это как то связано с тем, что вы вводите в консоле.
В скрипте на странице хватает одного раза.
Ответить с цитированием
  #5 (permalink)  
Старый 30.11.2021, 17:09
Кандидат Javascript-наук
Отправить личное сообщение для jaroslav.tavgen Посмотреть профиль Найти все сообщения от jaroslav.tavgen
 
Регистрация: 18.09.2014
Сообщений: 128

Сообщение от voraa Посмотреть сообщение
Может это как то связано с тем, что вы вводите в консоле.
В скрипте на странице хватает одного раза.
В скрипте на странице нужно не только два раза ставить, но и time delay делать:

<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>
Ответить с цитированием
  #6 (permalink)  
Старый 30.11.2021, 17:16
Кандидат Javascript-наук
Отправить личное сообщение для jaroslav.tavgen Посмотреть профиль Найти все сообщения от jaroslav.tavgen
 
Регистрация: 18.09.2014
Сообщений: 128

Хотя можно и так:

<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>
Ответить с цитированием
  #7 (permalink)  
Старый 30.11.2021, 19:12
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 1,670

Я проверял не сразу при загрузке страницы, а после какого-нибудь клика.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как выбрать элемент по классу и присвоить ему еще один класс? Ikles Events/DOM/Window 8 18.11.2016 12:34
Как выбрать из массива рядомстоящие одинаковые числа и посчитать их? drey84 Общие вопросы Javascript 3 15.10.2016 00:54
Как выбрать ближайшую дату ghosttim Events/DOM/Window 1 25.08.2016 12:49
Как выбрать элемент, который отправлялся ajax Nifler jQuery 2 20.08.2015 08:25
как выбрать второе название класса элемента imedia Элементы интерфейса 4 16.07.2015 00:46