Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 20.10.2015
Сообщений: 102

Внесение данных в input react из внешнего подключаемого скрипта

12.04.2023, 14:26. Показов 703. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем здравствуйте. Пишу скрипт для автоматизации своих действий на сайте, но наткнулся на проблему, при вставке данных через консоль через input.value данные стираются при событиях blue и focus. Ранее спокойно вставлял так но тут проблема с реактом, я так понимаю я вставляю значение но при фокусировке на поле элемент ререндерится и поле обновляется так как значение не было сохранено в состояние.

Есть в хроме дополнение которое очень хорошо справляется с данной задачей, называется Auto Clicker - AutoFill, я пытался разобраться как оно работает но моих знаний к сожалению пока не достаточно.

От того и хочу спросить у знающих, можно ли как то внести данные из внешнего скрипта и что бы оно не затирало поля?

Или может есть кто может помочь с данной проблемой?

Пример на видео: https://youtu.be/VIomxrkUImE
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.04.2023, 14:26
Ответы с готовыми решениями:

Http заголовки для внешнего подключаемого файла
Здравствуйте! Подскажите, пожалуйста, такую вещь... Допустим, есть страница index.php, для нее на сервере создаются всякие заголовки, ну,...

Забор данных для внешнего скрипта из опенкарт 2,3
Всем привет. Недавно взялся за изучение опенкарта 2,3 и возник первый затык. Сразу говорю, что гугл не помог или я не смог понять его...

Вывод данных из php скрипта в элемент html input
Здравствуйте. Делаю калькулятор. Суть такая-есть база данных. В ней таблица-прайс. Пользователь вводит некие данные в форму(форма и...

8
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3809 / 1647 / 428
Регистрация: 14.03.2022
Сообщений: 4,100
12.04.2023, 18:42
Цитата Сообщение от deman_fox Посмотреть сообщение
можно ли как то внести данные из внешнего скрипта и что бы оно не затирало поля?
В самом реакте можно на некий элемент повесить собственного слушателя событий. Этот слушатель должен иметь доступ к изменению стейта тех полей.

Сторонний скрипт получает доступ к этому элементу и генерит это событие на элементе, передавая свои данные. Слушатель меняет стейт у полей.
Т.о. все будет сделано корректно.

Если в момент работы стороннего скрипта те поля уже есть на странице - можно генерить стандартные события, какие меняют стейт тех полей...
0
0 / 0 / 0
Регистрация: 20.10.2015
Сообщений: 102
12.04.2023, 19:22  [ТС]
Цитата Сообщение от krvsa Посмотреть сообщение
Если в момент работы стороннего скрипта те поля уже есть на странице - можно генерить стандартные события, какие меняют стейт тех полей...
Скрипт работает уже после инициализации полей, я пробовал записывать значение через value а потом вызывать событие input на нужном поле, в надежде что сработает обработчик но результат к сожалению не дало, если вы об этом?...

,
Цитата Сообщение от krvsa Посмотреть сообщение
В самом реакте можно на некий элемент повесить собственного слушателя событий. Этот слушатель должен иметь доступ к изменению стейта тех полей.
Сторонний скрипт получает доступ к этому элементу и генерит это событие на элементе, передавая свои данные. Слушатель меняет стейт у полей.
Т.о. все будет сделано корректно.
Это я так понимаю можно сделать только имея доступ к коду приложения а не извне?
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3809 / 1647 / 428
Регистрация: 14.03.2022
Сообщений: 4,100
12.04.2023, 21:13
Лучший ответ Сообщение было отмечено deman_fox как решение

Решение

Цитата Сообщение от deman_fox Посмотреть сообщение
я пробовал записывать значение через value а потом вызывать событие input на нужном поле, в надежде что сработает обработчик но результат к сожалению не дало
Вот смотри, один из вариантов, как такое можно провернуть
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<button>test</button>
<input type="text" />
 
<script>
const oi = document.querySelector('input')
oi.addEventListener('input', function(e) {
    if (e.detail) {
        // вот тут нужно менять стейт
        this.value = e.detail;
    }
})
document.querySelector('button').addEventListener('click', _ => {
    const e = new CustomEvent('input', {detail: 'test'})
    oi.dispatchEvent(e)
})
 
</script>
 
</body>
</html>
Добавлено через 1 минуту
Цитата Сообщение от deman_fox Посмотреть сообщение
Это я так понимаю можно сделать только имея доступ к коду приложения а не извне?
В любом случае доступ к приложению нужен. Ведь именно приложение меняет стейт.
0
0 / 0 / 0
Регистрация: 20.10.2015
Сообщений: 102
13.04.2023, 10:22  [ТС]
Цитата Сообщение от krvsa Посмотреть сообщение
Вот смотри, один из вариантов, как такое можно провернуть
Попытка была зачтена, но безуспешна)

Видео
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3809 / 1647 / 428
Регистрация: 14.03.2022
Сообщений: 4,100
13.04.2023, 11:51
Цитата Сообщение от deman_fox Посмотреть сообщение
но безуспешна)
Так ты стейт меняешь или у тебя нет доступа к ПО на Реакте?

Добавлено через 4 минуты
Цитата Сообщение от deman_fox Посмотреть сообщение
Видео
В твоем видео показан полностью мой скрипт, который стейт не меняет.

Реактовский обработчик нужно менять. Делать его как в моем примере. Именно он должен анализировать что прислал ему эвент и, если это пользовательский эвент, записывать в стейт то, что мы ему прислали.
0
Эксперт JS
 Аватар для DrType
6553 / 3624 / 1075
Регистрация: 07.09.2019
Сообщений: 5,877
Записей в блоге: 1
13.04.2023, 11:59
Цитата Сообщение от deman_fox Посмотреть сообщение
Пишу скрипт для автоматизации своих действий на сайте
То есть возможности менять скрипты сайта нет, я так понимаю.

Добавлено через 3 минуты
Если при фокусе компонент ререндерится, то можно навесить обработчик фокуса, который будет выжидать некоторое время, а затем снова задавать нужное значение.
0
0 / 0 / 0
Регистрация: 20.10.2015
Сообщений: 102
13.04.2023, 12:34  [ТС]
Цитата Сообщение от krvsa Посмотреть сообщение
Так ты стейт меняешь или у тебя нет доступа к ПО на Реакте?
Цитата Сообщение от krvsa Посмотреть сообщение
Реактовский обработчик нужно менять. Делать его как в моем примере. Именно он должен анализировать что прислал ему эвент и, если это пользовательский эвент, записывать в стейт то, что мы ему прислали.

Нет доступа в том и суть. Но есть еще такая тема, если засунуть инпут в переменную то у него есть метод, который я так понимаю идет от валидатора или т.п. Может можно через него повлиять? У него есть метод onChange, который в себя просит ивент, по идее должно иметь отношение у стейту и его перезаписи.

Доступа как и говорил нету, но я зацепился на расширении для хрома о котором говорил, он как раз меняет стейт при загрузке страницы, правда вот как он это делает... Но суть в том что как то на это можно повлиять из вне.

Цитата Сообщение от DrType Посмотреть сообщение
То есть возможности менять скрипты сайта нет, я так понимаю.
Нет.
Миниатюры
Внесение данных в input react из внешнего подключаемого скрипта  
0
0 / 0 / 0
Регистрация: 20.10.2015
Сообщений: 102
13.04.2023, 13:11  [ТС]
Нашел решение, как и думаю, встроенный метод onChange помог достучатся)

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const oi = document.querySelector('#Login')
 
oi.addEventListener('input', function(e) {
    if (e.detail) {
        // вот тут нужно менять стейт
        this.value = e.detail;
        oi.__reactProps$ahdtmfeags6.onChange(e)
    }
})
 
 
 
    const e = new CustomEvent('input', {detail: 'test'})
 
    oi.dispatchEvent(e)
true
krvsa, идею в реализации ты подкинул, спасибо! Твой ответ закрывает тему)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.04.2023, 13:11
Помогаю со студенческими работами здесь

React.js подключение внешнего js файла
Здравствуйте. Только что начал изучать React и дошло до того, что мой js файл не подгружает компоненты на страницу. Если этот же код...

Получение value из select и внесение его в input
Добрый день! Есть код: &lt;form&gt; &lt;select name=&quot;prefix&quot; id=&quot;prefix&quot; onchange=&quot;contr_numb_onchange(this.value)&quot;&gt; &lt;option...

В компоненте react не обновляются input
https://i.ibb.co/QFp1QDm/testauto.png Реализую CRUD приложение. Добавление и удаление реализовал. Возник вопрос с обновлением. Для этого:...

React Native. Сохранение внешнего файла json с проверкой на наличие обновлений в нём
Вечер добрый. Подскажите как сделать проверку на наличие изменения во внешнем файле? Предположим, я скачиваю файл json с сервера и сохраняю...

Вызов внешнего скрипта
Здравствуйте. Требуется вызывать внешний скрипт, написанный на Python. Проблема заключается в том, что вызов простого скрипта...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru