Bu soru için eksiksiz bir çözüm buldum. (Bunu Chrome 27 ve Firefox 21'de test ettim).
Bilmeniz gereken iki şey var:
- 'Şifreyi kaydet'i tetikleyin ve
- Kaydedilen kullanıcı adını / şifreyi geri yükleyin
1. 'Şifreyi kaydet'i tetikleyin:
For Firefox 21 sunumundan giriş metin alanı ve giriş Şifre alanını içeren bir form olduğu tespit ettiğinde, 'Şifreyi kaydet' tetiklenir. Bu yüzden sadece kullanmamız gerekiyor
$('#loginButton').click(someFunctionForLogin);
$('#loginForm').submit(function(event){event.preventDefault();});
someFunctionForLogin()
event.preventDefault()
formun gönderilmesi nedeniyle orijinal yönlendirmeyi bloke ederken, ajax oturum açar ve oturum açılan sayfaya yeniden yükler / yeniden yönlendirir.
Yalnızca Firefox'la ilgileniyorsanız, yukarıdaki çözüm yeterlidir, ancak Chrome 27'de çalışmaz. Ardından, Chrome 27'de 'Şifreyi kaydet'i nasıl tetikleyeceğinizi soracaksınız.
For Chrome 27 , 'Şifreyi kaydet' tetiklenir sonra o giriş metin alanını içeren formu göndererek sayfasına yönlendirilir özellik name = 'kullanıcı adı' ile ve giriş şifre alanına özellik adının = 'şifre' ile . Bu nedenle, formu gönderirken yönlendirmeyi engelleyemiyoruz ancak ajax girişini yaptıktan sonra yönlendirmeyi yapabiliriz. (Ajax girişinin sayfayı yeniden yüklememesini veya bir sayfaya yönlendirme yapmamasını istiyorsanız, maalesef benim çözümüm çalışmıyor.) O halde kullanabiliriz.
<form id='loginForm' action='signedIn.xxx' method='post'>
<input type='text' name='username'>
<input type='password' name='password'>
<button id='loginButton' type='button'>Login</button>
</form>
<script>
$('#loginButton').click(someFunctionForLogin);
function someFunctionForLogin(){
if() {
$('#loginForm').submit();
}
else {
}
}
</script>
Type = 'button' olan düğme, düğmeye tıklandığında formun gönderilmemesini sağlayacaktır. Ardından, ajax oturum açma için düğmeye bir işlev bağlanır. Son olarak, $('#loginForm').submit();
oturum açma sayfasına yönlendirmeleri çağırmak . Oturum açılmış sayfa geçerli sayfaysa, "yenile" yapmak için "imzalı.
Şimdi, Chrome 27 için yöntemin Firefox 21'de de çalıştığını göreceksiniz. Bu yüzden kullanmak daha iyidir.
2. Kaydedilen kullanıcı adını / parolayı geri yükleyin:
LoginForm'u HTML olarak sabit kodlu hale getirdiyseniz, loginForm'da kayıtlı parolayı geri yüklemek için hiçbir sorun bulamazsınız.
Ancak, loginForm'u dinamik olarak yapmak için js / jquery kullanırsanız kaydedilen kullanıcı adı / parola loginForm'a bağlanmayacaktır çünkü kaydedilen kullanıcı adı / parola yalnızca belge yüklendiğinde bağlanır.
Bu nedenle, loginForm'u HTML olarak sabit kodlamanız ve loginForm'u dinamik olarak taşımak / göstermek / gizlemek için js / jquery kullanmanız gerekiyordu.
Not:
Ajax girişini yaparsanız, aşağıdaki autocomplete='off'
gibi etiket formunda eklemeyin
<form id='loginForm' action='signedIn.xxx' autocomplete='off'>
autocomplete='off'
kullanıcı adını / parolayı "otomatik tamamlamasına" izin vermediğiniz için loginForm'a geri yükleme başarısız olur.