完美解决谷歌浏览器自动填充问题

发表于2017-12-05 13:56 阅读(104)

在谷歌浏览器中,登陆成功后,谷歌浏览器会提示是否记住密码。如果选择记住密码,那么再次登录会出现诸如下边情况:


如果产品需求是不希望浏览器自动填充账号密码,那么怎么去除呢?

最先想到的是设置input标签属性autocomplete="off",不起作用1,

然后试着设置css input:-webkit-autofill设置背景色为透明和设置相应的字体颜色,依然不尽人意2。

然后按照网上提供的一个办法,额外添加一个伪造的input元素,初始可见,然后文档加载完毕,再通过setTimeout把伪造的input为隐藏,

setTimeout设置的时间为1ms。不知道是自己实现的方式不对还是怎么地,依然不起作用3。

后来突然一个念头蹦出来,如果输入框在文档初始化不存在,然后在文档加载成功之后再注入到文档节点中,是否浏览器就不会自动填充了?

按照预想,不出所料,果然输入框不会再被填充,大功告成,哈哈哈

由于项目是基于vue,所以元素的后期插入相对来说很简单实现,代码如下:

<template>
  <div>
    <input v-if="isShow" type="text">
  </div>
</template>
<script>
  export default {
    data(){
      return {
        isShow:false
      }
    },
    mounted(){
      setTimeout(()=>{
        this.isShow = true;
      },1)
    }
  }
</script>