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

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

12.04.2023, 14:26. Показов 746. Ответов 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
3844 / 1699 / 431
Регистрация: 14.03.2022
Сообщений: 4,343
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
3844 / 1699 / 431
Регистрация: 14.03.2022
Сообщений: 4,343
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
3844 / 1699 / 431
Регистрация: 14.03.2022
Сообщений: 4,343
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
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru