0

ウェブページのユーザーとパスワードの入力欄を自動的に入力するためのコンテンツスクリプト拡張を作成しました。しかしコンテンツを自動入力するユーザーパスワードフォームを作成します。

<input name="userId" class="form-field" id="userId" placeholder="Username" autocomplete="off" tabindex="1" type="text"> 
<input name="password" class="form-field" id="password" placeholder="Password" autocomplete="off" tabindex="2" type="password"> 
<input name="signIn" class="btnBlue" id="signIn" value="Sign In" tabindex="4" onclick="checkIECompat()" type="button"> 

、それは角度で生成された形になると、関係なく、私はそれらのNG-xxxxxxの授業で再生しよういかに難しいか、それは動作しません - それは以下のような通常の形でOK動作します。

<input type="text" class="form-control text-center modal-header ng-valid-maxlength ng-touched ng-dirty ng-valid-parse ng-invalid ng-invalid-required" name="idCard" placeholder="User Name" maxlength="20" autocomplete="off" ng-model="request.userName" required=""> 
<input type="password" class="form-control text-center ng-dirty ng-valid-parse ng-touched ng-invalid ng-invalid-required" name="password" placeholder="Password" aria-describedby="" autocomplete="off" ng-model="request.password" style="margin-top:15px" required=""> 
<button type="submit" class="btn btn-blue btn_login" value="Log In" ng-click=" login('/payment')" ng-disabled="loginForm.$invalid" disabled="disabled">เข้าสู่ระบบ <span class="glyphicon glyphicon-log-in" style="font-size:14px" aria-hidden="true"></span></button> 

上記は、ページが最初に読み込まれるときのコードです。私は手動でフォームを入力し、すべての有効性がチェックされ、送信ボタンが有効になっているときにコードを検査します。次に、自分のプログラムを使用して、クラスと他の詳細を変更して、それらを同一にします(その順序は例外です)。私はさらにdisabled属性を削除することによって強制的にボタンを有効にしますが、それは役に立ちません。ボタンはクリックできますが、何も起こりません。

私の質問は「これを達成できますか?」です。コンテンツスクリプトが正常に動作しないというAngularに関する制限はありますか?それとも、私はそれを動作させることができていないコーディングの問題です。

もう一つの問題は、私は角度コードを所有していないということです。それは私が私の内線番号を使用することを望むウェブサイトに属します。

+0

機密データ(ユーザー名とパスワード)を正しく処理することは、何十年ものコンピュータセキュリティの経験を持つ人々でさえ、時折間違って危険にさらされるというハードな問題です。 [パスワードマネージャー](https://www.google.com/search?q=password+manager)は非常に重要です。それは、いずれの人にとっても良いアイデアである**プロジェクトのタイプではありません。これは特に、データの安全な取り扱い、拡張機能の操作、Webページの操作などで長年の経験がない場合には当てはまります。あなたの質問に基づいて、他のプロジェクトを真剣に検討することをお勧めします。 – Makyen

+0

'input'イベントをディスパッチしますか? [入力値をjQueryで設定した後に角度モデルを更新]することができます(// stackoverflow.com/q/17109850) – wOxxOm

+0

@Makyen:ありがとうございます。私もこれを考慮しました。だから、私の拡張機能はユーザーやパスワードを保存しません。これは、ユーザーのキーを希望のページのフォームにリレーするだけです。 – piptan

答えて

1

@wOxxOmで案内されているように、入力値を設定した後にイベントをトリガするために(Angularモデルを更新するために)次の行を追加した後、私の問題は解決されます。

document.getElementsByName("idCard").item(0).value = 'XXXXX'; 
document.getElementsByName("idCard").item(0).dispatchEvent(new Event("input")); 
関連する問題