ユーザーが特定のサイトでアカウントを作成すると、名前、電子メール、場所などのユーザーの基本情報が必要になることがあります。ユーザーが以前に自分の情報を入力したことがある場合、Chrome にはこのフォームを自動入力する機能があります。
私の質問は、ユーザーがアクセスしているページが自動入力できるかどうかを検出/識別することは可能ですか?
単純な解決策は、自動入力できるフォームのすべてのページを解析することです。しかし、よりエレガントなソリューションはありますか?
ユーザーが特定のサイトでアカウントを作成すると、名前、電子メール、場所などのユーザーの基本情報が必要になることがあります。ユーザーが以前に自分の情報を入力したことがある場合、Chrome にはこのフォームを自動入力する機能があります。
私の質問は、ユーザーがアクセスしているページが自動入力できるかどうかを検出/識別することは可能ですか?
単純な解決策は、自動入力できるフォームのすべてのページを解析することです。しかし、よりエレガントなソリューションはありますか?
さて、デフォルト値value="VALUE"
が変更されたことを確認できます。つまり:
if (getElementById('inputID').value != 'VALUE') { // DO SOMETHING }
また
値が変更されたかどうかを確認します。
input type="text" onchange="alert('changed')">
これら2つのうちの1つがあなたを助けるはずです(私は願っています:))
あなたは正確に何をしたいですか?もちろん、すべてのフォームは自動入力できるため、テキスト内の質問に対する答えは YES です。
あなたの見出しの質問は、まったく別のものです。フォームは自動入力されていますか?
かなり良い概算があります: フォームに (送信した値とは異なる) 値があるかどうかをロード時にチェックすると、明らかに、ユーザーがそれらを手動で入力できませんでした。これで、自動入力が行われたことがわかります。
一方で、自分のサイトのためではなく、自分で書きたいブラウザー拡張機能のための一般的なソリューションを探しているように聞こえますか? その場合、解決策は同じですが、ページの読み込み直後に、ページが提供する値を見て、実際にある値が異なるかどうかを確認してください。正確にはわかりませんが、onload イベントは問題ないはずです。ページが読み込まれる前に自動入力は行われないと思います。onload イベントの上に数百ミリ秒を追加する必要があるかもしれません。とにかく、ユーザーは 1 秒以内に多くのことを入力したり、チェックボックスを選択したりすることはできないため、それでも非常に適切な推測です。
とにかく、あなたの見出しとあなたの質問を読み直した後でさえ、私は実際にあなたが達成したいことについてもっと混乱しています.それ自体が問題です:)
あなたが使用することができます
document.querySelectorAll('*:-webkit-autofill');
すべての要素を自動入力します。
次に、ループ内に新しい要素があるかどうかを確認するだけです。