浏览器保存密码后自动填充问题

问题描述

在浏览器中进行登录操作时浏览器往往会问我们是否需要记住密码,当我们点击了记住密码后,发现浏览器会自动填充此域名下已经保存的账号密码,给用户带来不便。加了HTML5 中的新属性autocomplete="off" ,但是并没有产生效果。

浏览器自动填充机制

反复测试后发现浏览器自动填充机制是满足:页面里有一个type=password的input且这个input前面有一个type=text的input的时候就会进行自动填充。firefox和360浏览器的处理方式是:只要检测到页面里有满足填充机制的,不管是不是display:none 的,只要检测到就直接往里填充。而且是有几个符合条件的就填充几个。而chrome 54版本略有不同:满足上面的条件且页面里只有一个type=password 的input。才会自动给第一个type=text 的input填充账号,给type=password 的input填充密码。

解决方案

所以根据这个机制,我的解决办法是:给第一个type=text的input前面再加一个隐藏的type=text的input,给第一个type=password的input前面再加一个隐藏的type=password的input

<style type="text/css">
.hidden-input{
  position: relative;
  width: 0;
  height: 0;
  overflow: hidden;
}
/*让input看不见,而不是直接display: none,如果直接display: none,则不生效*/
.hidden-input .form-control{
  position: absolute;
  left: -1000px;
}
</style>
<form onsubmit="return false;">
  <div class="form-horizontal">
    <div class="form-group">
      <div class="col-sm-3"><label for="" class="label">提现地址</label></div>
      <div class="col-sm-9">
        <div class="hidden-input">
          <!--让浏览器自动填充到这个input-->
          <input type="text" class="form-control">
        </div>
        <input type="text" autocomplete="off" class="form-control bg-transparent" placeholder="提现地址">
      </div>
    </div>
    <div class="form-group">
      <div class="col-sm-3"><label for="" class="label">备注</label></div>
      <div class="col-sm-9">
        <input type="text" autocomplete="off" class="form-control bg-transparent" placeholder="备注">
      </div>
    </div>
    <div class="form-group mb-10">
      <div class="col-sm-3"><label for="" class="label">交易密码</label></div>
      <div class="col-sm-9">
        <div class="hidden-input">
          <!--让浏览器自动填充到这个input-->
          <input type="password" class="form-control">
        </div>
        <input type="password" autocomplete="off" class="form-control bg-transparent"placeholder="交易密码">
      </div>
    </div>
    <div class="form-group pt-10 no-mb">
      <div class="clearfix">
        <div class="col-xs-12">
          <button type="button" class="btn btn-primary btn-lg btn-block">确定提交</button>
        </div>
      </div>
    </div>
  </div>
</form>

到目前为止(2018-09)这个方法在chrome、firefox、ie、360、ios、安卓等各设备各浏览器中都有生效!

原文地址:https://www.cnblogs.com/jlfw/p/11846270.html

时间: 2024-08-26 07:36:22

浏览器保存密码后自动填充问题的相关文章

游览器保存密码和自动填充密码的困惑 (browser save password and auto fill password )

原文 refer : http://www.cnblogs.com/happyfreelife/p/4240100.html 当一个带有username and password 的表单被提交, 游览器会智能的询问用户是否要保存密码. 如果开发人员不希望这“智能”的事儿,可以使用ajax去提交表单,这样游览器就不会“智能”了. “ 当允许浏览器保存该网站的密码之后,下次打开该网站的任何一个页面时,浏览器会自动检测该页面是否有 password元素 ,如果有或者有多个,则自动填充对应的上次已保存的

去掉chrome记住密码后自动填充表单的黄色背景

chrome 表单自动填充后,input文本框的背景会变成黄色的,通过审查元素可以看到这是由于chrome会默认给自动填充的input表单加上input:-webkit-autofill私有属性,然后对其赋予以下样式: input : -webkit-autofill { background-color : #FAFFBD ; background-image : none ; color : #000 ; } 在有些情况下,这个黄色的背景会影响到我们界面的效果,尤其是在我们给input文本框

登录被浏览器记住密码后,密码填充到密码框问题

一般登陆之后浏览器会询问是否记住密码,如果把密码记住在浏览器上,下次登陆的时候浏览器会把用户名和密码自动填充到登录页面.工作中做项目提测后,测试提出360浏览器记住密码后会自用把登陆账号和密码填充到添加账号页面和修改账号页面,经过本地测试后发现确实存在该问题. 类似于这样: 从用户的角度来说 这么整肯定不行,即使是浏览器的问题.通过组内人员的一步一步探索最终找到解决办法: 1.通过网上搜索 发现有些文章是提供设置设置文本框的autocomplete属性为off,根据该方法修改后发现并没有解决问题

chrome浏览器当表单自动填充时,怎么去除浏览器自动添加的默认样式。

参考blog来自 http://segmentfault.com/q/1010000000671971 chrome浏览器当表单自动填充时,怎么去除浏览器自动添加的默认样式. 一.发现该问题的原因-是在写账号登录页面时,input表单添加了背景图片,当自动填充,搓搓的一坨淡黄色背景出来. 这个原因是我草率的直接设置在input元素里面,结果问题就来了.所以如果把这个图标放在input表单外面,就不会出现这个问题. 二.表单自动填充会添加浏览器默认样式怎么处理和避免 第二张图,就是表单自动填充后,

Android记住密码后自动登录

/** * * @author alex * @version 2014-7-31下午5:25:45 * */ public class LoginActivity extends Activity { private EditText name; private EditText pass; private CheckBox isRemenber; private CheckBox isLoginSelf; private Button longin; private ProgressDial

关于浏览器保存密码的那些事

今天在论坛帖子中看到了一篇文章,关于chrome浏览器中保存的密码安全性的问题.我自己试了下,吓我一跳.可以查到我所有保存的用户名和密码.查看方式是在chrome浏览器中输入chrome://chrome/settings/passwords.弹出如下 知道了吧,在浏览器保存密码真的不安全哦!关于浏览器保存密码更详细的介绍请点击下面的链接. http://blog.jobbole.com/30922/ http://www.howtogeek.com/70146/how-secure-are-y

浏览器保存密码请慎重!!

浏览器保存密码!!慎重!! 谷歌: 火狐: 虽然密码忘记的时候,也可以从浏览器中查看到自己忘记的密码.但是公共计算机最好不要保存密码,细思极恐. 原文地址:https://www.cnblogs.com/mangshebaotang/p/10908361.html

谈谈360浏览器保存密码的差异

多事之夏,最近黑阔大牛们经常光顾我们网站,不甚荣幸,也让我们老大没少加班.上指纹系统,开safe_mode,重新编译PHP等等,安全警戒一度提到最高. 在用户登录方面,为了用户密码安全,我们在用户输完密码点击提交后,js自动给密码加上MD5,然后再传输到服务器.这样即使密码被嗅探到了,也是加密后的密码. 先看代码: 1 <script> 2 functionMD5(){ 3 //MD5加密算法,细节省略 4 } 5 6 functioncheck(){ 7 //提交前将用户的密码用MD5加密

各大浏览器保存密码的文件

很多浏览器都自带了一个功能,那就是自动保存密码,第一次输入密码之后会提示你保存密码(有的提示是"自动填写"),然后下次登录相同网站的时候不用再次麻烦地输入密码.虽然方便,不过不安全.因为这些数据都是保存在硬盘上的.我最开始想的是怎么查看到别人的星号密码,有的浏览器如搜狗有那种星号密码查看器可以查看星号密码,不过不是所有浏览器都有这个扩展,或者说不是所有的网站都支持你查看,毕竟有的网站安全措施做得很好,于是我突然想到,能不能通过获得别人浏览器的配置文件中和这个自动保存密码功能相关的文件,