关于360浏览器自动填充表单问题以及解决方案

浏览器发展现在的网络社会,拥有成千上万、形形色色的网站,相对应的就会存在许许多多的用户,而我们普通用户对于记住这些账号密码就显得好麻烦,

所以,现在的浏览器都带有记住密码功能,就是在对应的域名下,保存你的账号密码,每当你再次访问,提示你需要输入账号密码的时候 浏览器可以自动进行填充,正常情况下这种设计对使用者来说是满个性化的。

但相应的也会带来一些麻烦,比如我是一个开发者我在登录时记住了密码,但当我在修改密码时(此页面有用户名和密码)

那么不管你真实的用户名和密码是什么,都会被浏览器自动填充的用户和密码覆盖掉(被覆盖的用户和密码输入框的背景将会变成黄色)

这对于我们开发者来说带来的麻烦也是不少的。

问题描述

今天在开发过程中,就碰到了这个问题,测试给我提了一个单:在360浏览器极速模式下提交表单的时候,会先判断是否更改了新密码,如果新旧密码不一致,那么就return回去,无法提交成功。

然而在兼容模式,或者其他浏览器没有出现这个问题。

一开始以为是这个点击事件没有触发,可能是没有选中这个按钮,打下断点发现,这个事件执行了,但是被一行 if 判断里面的return回去了,

在chrome下排查,这个if条件是没有触发的。

后来才看到,是因为新旧密码不一样的问题导致的。

那么你肯定会问,一不一样,直接页面元素不就看出来了吗?最最坑爹的地方莫过于此,因为是接受人家做的项目,不知道这个神一样的逻辑,

它先是把更改密码的2个input全部隐藏了,点击提交的时候,又会去判断这里面的值,这2个input又是经一个button去控制开关了,然后!!!!

这个开关点击事件,又要if 去判断一下,新旧密码是否一样才能给你 显示隐藏, 这就坑爹了!!!

因为360会给我新密码那个input自动填充进去,导致,我提交不了,也打开不了那个开关。。。因为首先它就是一个if来判断是否一样。。。

产生原因经过测试发现(360浏览器)在以下情况下会自动填充用户和密码信息:

在用户和密码包含在form的情况下,同时包含一个 type=”text”和 type=”password”元素且不包含readonly和disabled属性,两个元素可以没有name和id属性

在没有form的情况下,同时包含一个 type=”text”和 type=”password”元素且不包含readonly和disabled属性,且两个元素至少都有name或id属性(但name和id可以是任意值但不能是空或空格)

解决办法

好了,啰里啰唆一大堆,是时候说解决办法了。

解决思路. 它要填充密码,我们就给它一个input标签让他填充,写一个隐藏input表单元素,骗取360浏览器填充这个是骗取360 假的input

maxlength="16" value="" />这个是真正需要用到的input

value="" />

type一定要有text和password,id一定要有,可任意命名,这样360浏览器才会把用户名和密码自动填充进去,用style=”display:none”隐藏. 保险起见,提供plan2来协助完善此方案

因为360是会获取dom元素,判断是否有type = “password” 的元素,而默认填充第一个,那我们把type 改为“text”是不是就可以了呢?

var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串

var isOpera = userAgent.indexOf("Opera") > -1;

if (userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera) {

// IE浏览器

} else {

// 非IE浏览器 (IE不能修改输入框的type)

$("#upd_password").prop("type", "text");

}

因为ie是不支持更改type 的,所以要先判断是否是IE,再进行操作

然后,changeIptType: function () {

var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串

var isOpera = userAgent.indexOf("Opera") > -1;

if (userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera) {

// IE浏览器

} else {

// 非IE浏览器 (IE不能修改输入框的type)

$("#upd_password").prop("type", "password");

}

}

这样一顿操作下来,就可以完美解决这个问题了,而且不仅针对360浏览器,对于其他浏览器也适用。

html 360浏览器输入框自动填充,关于360浏览器自动填充表单问题以及解决方案相关推荐

  1. 通过浏览器F12开发者工具的javascript控制台给Vue表单赋值

    问题背景 做一个网页表单自动录入软件,网页不是我方开发的.自动录入软件是基于.NET的C/S客户端软件,它使用WinForm的WebBrowser控件加载网站,网站的前端是使用 Vue 和 Eleme ...

  2. selenium定位输入框_[Selenium 粗浅笔记] 用Selenium填写表单

    要做什么 Steiner:[Selenium] 简单介绍​zhuanlan.zhihu.com 我们用刚才学到的知识去用selenium来模拟与表单交互,还好有个可以练习的网站 test websit ...

  3. 点击button自动提交表单原因及解决方案

    在做登录的时候,需要ajax提交验证,但是发现点击button会自动submit表单,代码如下 <!DOCTYPE html> <html> <head> < ...

  4. html表单输入框添加验证码,织梦Dedecms为自定义表单添加验证码功能

    使用织梦Dedecms自定义表单的时候,即使你做了字段的验证,也很有可能被人刷很多垃圾的内容,更加安全的一个方法是为自定义表单添加上验证码功能.今天我就来为大家分享一下怎样给自定义表单添加验证码! 一 ...

  5. html 表单自动数值,web前端学习技术之对HTML5 智能表单的理解

    原标题:web前端学习技术之对HTML5 智能表单的理解 Html5新增input的form属性,用于指向特定form表单的id,实现input无需放在form标签之中,即可通过表单进行提交. - t ...

  6. html表单输入的文本框的值,网页设计关于表单输入框的技巧代码

    虽然现在有许多网页制作工具能让您轻松地完成工作,但如果使用HTML则可以得到更大控制权,下面介绍几个小技巧. 1.使用, 2018-04-14 网页表格表框制作技巧. ---------------- ...

  7. java 浏览器 安全_安全策略-IE浏览器防黑十大秘籍

    1.管理好Cookie 在IE6.0中,打开"工具"→"Internet选项"→"隐私"对话框,这里设定了"阻止所有Cookie& ...

  8. Java使用FreeMarker自动生成Word文档(带图片和表单)

    Java使用FreeMarker自动生成Word文档(带图片和表单) 1 背景 2 目标效果 3 创建Word模板 3.1 创建模板文档 3.2 转换模板文档 3.3 处理模板文档中的占位符 3.4 ...

  9. Html:小技巧:自动提交表单的实现方法

    Html:小技巧:自动提交表单的实现方法 方法一: <html> <head> <title>Untitled Document</title> (1) ...

最新文章

  1. 网吧网管在自杀前的遗书
  2. Spring Cloud【Finchley】-13 Eureka Server HA高可用 2个/3个节点的搭建及服务注册调用
  3. 内存泄漏检测工具(转载)
  4. 整合ssh model $$_javassist_13 cannot be cast to javassist.util.proxy.Proxy
  5. 【转载】关于防火墙的初次接触
  6. 深入了解学习C++的意义与就业方向
  7. 在Mac系统中如何使用App Cleaner Uninstaller Pro清理应用卸载残留?
  8. Ubuntu 16.04下安装激活pycharm 2018.3版本
  9. 迅 捷PDF编辑器去水印
  10. 32位qt程序, 利用32位mysql驱动,连接64位mysql8.0
  11. 经纬度转换器_FME应用小实例:线面经纬度集合快速转几何图形
  12. 2021牛客暑期多校训练营#10:F-Train Wreck
  13. C语言:二维数组传参的格式(详细+总结)
  14. 转基因大米非法流入内地转基因大米非法流入内地:基因战争?粮食安全?
  15. 骁龙660和骁龙835之间的差距到底有多大?
  16. 观察 | 家长焦虑,教培着急,暑期“培训热”今年还会持续吗?
  17. 不是技术牛人,如何拿到国内巨头Offer
  18. 【ParaView教程】第四章 常见问题 —— 怎样在ParaView中将颜色预设默认设为Blue to Red Rainbow?
  19. oracle 索引命中条件,Oracle索引命中与扫描规律总结 | 学步园
  20. 数学柏拉图多面体---定积分(二)

热门文章

  1. UE4开发七:UE4打包
  2. Conflux 进阶课 | 资产跨链桥梁 详解 Conflux ShuttleFlow 协议
  3. 每天小练笔8-模拟进程调度
  4. TCP连接数过大导致down机的原因分析
  5. 智慧城市:智能红绿灯的现在与未来发展
  6. PixHawk飞控 配置参数
  7. C语言qsort函数的实现
  8. 五一劳动节 甩开压力“嗨”起来
  9. ChatGPT、GPT4、AutoGPT 和 MemoryGPT:初学者指南
  10. Tableau图例:利用单独图例实现条件格式