Я пытаюсь написать простое расширение Chrome, которое копирует некоторую информацию с одной веб-страницы и заполняет соответствующие поля ввода на другой. Значение поля ввода (видимо) устанавливается с помощью JavaScript: inputField.value = "some value"
в скрипте содержимого, внедренном на веб-страницу. Затем, когда я нажимаю на другие поля ввода, его значение возвращается к исходному значению (что нежелательно). Я пытаюсь найти причину этого.
(Сайт https://mojezasielky.posta.sk/#dashboard - вам, вероятно, придется зарегистрироваться - конкретно "Balík -> Nová zásielka".)
Я попробовал добавить
inputField.dispatchEvent(new Event("input", {bubbles: true}));
inputField.dispatchEvent(new Event("change", {bubbles: true}));
ожидая, что, возможно, что-то прослушивает эти события, но оно все равно ведет себя так же.
В чем может быть причина такого поведения? Как я могу предотвратить это?
После регистрации и открытия панели управления я не могу найти «Nová zásielka» после нажатия на «Balík». Поэтому я не мог напрямую проверить свои идеи.
Идеи:
el.setAttribute('value','your value');
defaultValue
, может быть, вы также можете попробовать установить его?Решение для этого ответа мне помогло. В частности, мне пришлось добавить:
const BLUR = new Event("blur", {bubbles: true});
inputField.dispatchEvent(BLUR);
Я до сих пор не знаю почему, но кажется понятным, что что-то прослушивает это событие.
Спасибо за ваши идеи. К сожалению, мне не удалось решить проблему таким способом, но я нашел другой способ.