Что я пытаюсь сделать:
Разработка расширения chrome, которое отправляет форму (через событие нажатия кнопки) на веб-сайте. Поля ввода формы заполняются chrome автозаполнением. Для этого используйте декларативную js -инъекцию с контент-скриптами. Форма выглядит следующим образом:
<form action="...." method="post">
<table style="margin-top:4px; margin-bottom:4px">
<tr>
<td width="40%">
<label for="username">Login:</label>
</td>
<td>
<input name="i_username" type="text" id="username" autocapitalize="off" value="" autofocus/>
</td>
</tr>
<tr>
<td>
<label for="password">Passwort:</label>
</td>
<td>
<input name="i_password" type="password" id="password"/>
</td>
</tr>
<tr>
<td>
<button type="submit" name="proceed" value="Login">Login</button>
</td>
</tr>
</table>
</form>
Что происходит:
Страница загружена. Значения заполняются chrome автозаполнением и видны человеческому глазу. Однако, когда я пытаюсь прочитать входные значения с javascript, они пусты. (Таким образом, отправка формы с помощью кнопки приводит к ошибке, поскольку значения «пустые».) Как только реальный пользователь взаимодействует со страницей, значения становятся доступны в моем javascript.
I провел множество исследований по этой теме c, в том числе:
Нет этих тем пришел к окончательному выводу.
Я испробовал ряд решений для имитации «реального взаимодействия с пользователем», а также других обходных путей. Я пытался смоделировать реальный пользовательский ввод с помощью js событий клавиатуры или мыши. Я также пытался инициировать такие события, как .blur (), .focus () ....
Можно ли каким-либо образом прочитать значения автозаполнения без какого-либо взаимодействия с пользователем?
На самом деле было бы достаточно получить значения, которые заполняются chrome автозаполнением. Например, было бы здорово прочитать их прямо из chrome хранилища паролей (что, я знаю, невозможно).
Спасибо, OliDev