Для программного управления элементами `input type="range"` в веб-приложениях не всегда достаточно простого изменения значения инпута и вызова событий. Некоторые приложения могут использовать свои собственные внутренние механизмы для обработки событий и значений. В случае Яндекс Музыки, может также понадобиться взаимодействовать с их конкретной реализацией.
Ваш попытка с использованием `dispatchEvent` обычно должна работать, но если она не дает результата, попробуйте следующие шаги:
1. **Используйте полное обновление значения**: Вместо простого изменения значения через `el.value`, попробуйте изменить и "отправить" значение в **разных** частях кода. Убедитесь, что вы используете правильные события, необходимые для их реализации в рамках интерфейса.
```javascript
const el = document.querySelector('input[class*="ChangeTimecode_slider"]');
el.value = 50; // Или любое значение в допустимом диапазоне
const event = new Event('input', { bubbles: true });
el.dispatchEvent(event);
```
2. **Проверьте наличие слушателей событий**: Используйте инструменты разработчика, чтобы проверить, какие события действительно зарегистрированы на вашем ползунке. Возможно, приложение реагирует на специальные события, которые могут не быть стандартными `input` или `change`.
3. **Настройка метода / коллбеков**: Если приложение полагается на определенные методы для обработки изменений, вы можете попробовать найти и вызвать эти методы напрямую.
4. **Интеракция с мышью**: Если стандартные события не работают, можно попробовать эмулировать полное взаимодействие с мышью. Вот пример, как это сделать:
```javascript
const el = document.querySelector('input[class*="ChangeTimecode_slider"]');
// Эмулируем mousedown
const mouseDownEvent = new MouseEvent('mousedown', {
bubbles: true,
cancelable: true,
view: window
});
el.dispatchEvent(mouseDownEvent);
// Изменяем значение
el.value = 50;
// Эмулируем mousemove
const mouseMoveEvent = new MouseEvent('mousemove', {
bubbles: true,
cancelable: true,
view: window
});
el.dispatchEvent(mouseMoveEvent);
// Эмулируем mouseup
const mouseUpEvent = new MouseEvent('mouseup', {
bubbles: true,
cancelable: true,
view: window
});
el.dispatchEvent(mouseUpEvent);
```
5. **Изучите код приложения**: Если есть доступ к исходному коду, попробуйте найти, какие именно события обрабатываются после изменения ползунка, и воспроизведите их.
Если всё вышеперечисленное не работает, возможно, безопаснее рассмотреть наличие API от Яндекс Музыки, если оно доступно, чтобы избежать зависимостей от интерфейса, который может изменяться без уведомления.