javascript - Inaktivera Chromes "Uppdatera lösenord"-prompt *endast när man avbryter en lösenordsändring*
Jag har sett många inlägg om att inaktivera uppmaningar om att uppdatera lösenord, men dessa handlar alla om att helt inaktivera automatisk ifyllning av lösenord.
Det jag vill göra är att villkorligt förhindra uppmaningar om att uppdatera lösenord, särskilt när jag klickar på Avbryt i en dialogruta för att byta lösenord. Trots allt, om du bestämmer dig för att du vill avbryta ett lösenordsbyte, vill du inte uppdatera din webbläsare med ändringen som du beslöt dig för att inte göra.
Jag har försökt med att låta avbrytknappen tömma alla lösenordsfält (ursprungligt, nytt, bekräftat nytt), samt att ändra inmatningstypen för lösenordsfälten från password till hidden, men det hjälper inte. Jag tror att webbläsarens beslut att erbjuda Uppdatera Lösenord sker tidigare än någon av mina försök att stoppa det kan träda i kraft.
Några idéer? Här är de relevanta delarna av dialogens HTML:
<mat-form-field appearance="fill" >
<mat-label>Username</mat-label>
<input matInput [ngModel]="userName" disabled>
</mat-form-field>
<mat-form-field appearance="fill">
<mat-label>Current Password</mat-label>
<input matInput type="password" [(ngModel)]="currentPassword" (input)="onInput()" (focus)="onFocus('curr')" (blur)="onBlur('curr')"
[errorStateMatcher]="esm('currentPassword')">
</mat-form-field>
<mat-form-field appearance="fill">
<mat-label>New Password</mat-label>
<input matInput [(ngModel)]="newPassword" type="password" (input)="onInput()" (focus)="onFocus('new')" (blur)="onBlur('new')"
[errorStateMatcher]="esm('newPassword')">
</mat-form-field>
<mat-form-field appearance="fill">
<mat-label>Confirm New Password</mat-label>
<input matInput [(ngModel)]="confirmPassword" type="password" (input)="onInput()" (focus)="onFocus('conf')" (blur)="onBlur('conf')"
[errorStateMatcher]="esm('confirmPassword')">
</mat-form-field>
<mat-dialog-actions fxLayout="row" fxLayoutGap="8px" fxLayoutAlign="center center">
<button mat-stroked-button type="button" class="cancel-btn" (click)="onCancel()">CANCEL</button>
<button mat-flat-button type="submit" class="submit-btn" ngbAutofocus (click)="onSubmit()"
[disabled]="!valid || processing" [style.opacity]="!valid || processing ? '0.33' : '1'">
SUBMIT<app-spinner-overlay [processing]="processing"></app-spinner-overlay>
</button>
</mat-dialog-actions>
Svar #1
Jag provade olika lösningar:
- tömma indatavärdet vid klick
- ändra inmatningstyp vid klick
- använder en knapp typ=button istället för submit
- lämna sidan med document.location
- ..
Den enda som fungerade jag hittade var att använda en <a>, och även då, att fånga klickhändelsen och leka med document.location fick upp dialogrutan Uppdatera lösenord.
Så jag slutade med en fullständig URL med parametrar i href för min länk. Detta fungerar på Chrome och Edge.
Jag hoppas att detta hjälper.