今天同事反映了一个奇怪的bug:
他在一个校验表单也出现一个bug,当验证手机格式不正确时,会弹出提示“格式不正确”,当点击确定按钮关闭提示框后,自动在输入框里填入当前的url, 我们预期应该是只弹出一个提示框的,但是出现修改输入框的值出乎我们意料。而且这个情况只是偶尔出现,大部分时间是正常的,只是在弹出输入框慢时出现这样 的情况。
我们在代码里查了半天,没有找到对这个输入框赋值的地方。
于是我们逐个代码注释,发现当不弹出对话框时,就没有这样的问题,我们都在想“弹出对话框为什么会引起给输入框赋值呢?”
当我移动鼠标到提交按钮上时,发现按钮是一个a标签,并且链接和输入框被修改的值一样,我忽然想到了,我们刚才提交的动作有点像拖拽:点击完提交后,马上弹出提示框,然后点击提示框确定按钮,这个中间时间非常短,而且提示框确定按钮的位置正好在输入框的正上面!
于是我又试了几次,点击提交后,等提示框弹出后几分钟再点击“确定”,结果再也没有发生这样的问题了。
导致出现这样的bug的原因是firefox,连续点击a标签和点击弹出框确定按钮,时间间隔很短时,它会认为这个是一个拖拽事件,把a的href赋给了弹出框确定按钮底下的输入框。
我把a标签改为<span>标签包裹一个<img>标签,但是还是有一样的问题,输入框里出现了img的jpg链接,但是这个验证了我的想法。
于是我把img标签去掉,使用div代替,把img加在div的背景里,最后测试完全没有问题,这个是因为div是无法拖拽的。
原文:http://www.software8.co/wzjs/Javascript/4770.html
相关推荐
修复ios浏览器局部滚动因不满一屏而引起的bug
-修正极速内核由于js 运行时间过长引起的页面卡死 -修正Win8下无法使用输入法、视频弹出窗口可能会白屏、视频弹出窗口可能会重新加载的问题 金山猎豹浏览器1.0 build 2312 更新日志: 修正账号登陆时崩溃的问题;...
解决浏览器对trim()方法的支持问题。开发是解决浏览器的兼容问题,发现某些浏览器对trim()方法不支持引起了问题
浏览器是多进程的,浏览器每一个 tab 标签都代表一个独立的进程(也不一定,因为多个空白 tab 标签会合并成一个进程),浏览器内核(浏览器渲染进程)属于浏览器多进程中的一种。 浏览器内核有多种线程在工作。 GUI ...
话说最近在研究某著名跟踪系统,在其给用户的实施代码中有一段判断浏览器Javascript版本的代码引起了我的注意,于是问了下google如何判断浏览器的javascript版本
最近发现JS当中toFixed()方法存在一些问题,采用原生的Number对象的原型对象上的toFixed()方法时,规则并不是所谓的“四舍五入”或者是“四舍六入五成双”,所谓“四舍六入五成双”,在百度百科上给的解释是:也即...
伊尔敏提供了类似Git的API用于数据存储。 可以使用将其编译为Javascript并在浏览器中运行,并使用... 在任何情况下,无论是由于合同,疏忽或其他类似措施而引起的任何特殊,直接,间接或后果性的损害,或由于使用,
跨域这个问题是由于浏览器的同源策略引起的,请求的URL地址,必须与浏览器的URL是相同协议、相同域名、相同端口的,否则是不允许访问的 浏览器URL 要访问的URL 结果 http://www.123.com/index ...
我实现的功能是添加标签,无刷新地...左侧为js生成的html,右侧为页面(.aspx)中的html 引起样式差异的原因可能就是左侧缺少换行,我就在每行字符的末尾加了换行符”\n”,这样样式的问题就解决拉 代码如下: var html
SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash与JavaScript技术为WEB开发者提供了一个具有丰富功能继而超越传统标签的文件上传模式。 [编辑本段]SWFUpload的主要特点 * 可以...
Browsengine 这是一个小型库,用于检测不同的浏览器引擎、它们的版本以及它们运行在整个网络上的设备。 它的工作原理是处理浏览器引擎提供的信息,并将这些信息放在 <body> 标签的class属性中。前言JavaScript...
目前River Trail还是作为一个Firefox浏览器扩展存在的,尚不清楚是否会引起其他厂家的注意并引入到各自的Javascript引擎中,例如V8。另外, 在原文的评论部分,Intel还解释了River Trail和Web Workers的不同,并欢迎...
* 浏览器兼容问题 (IE、FF、Opera、NS、MYIE) 1.2.060922 + 指定范围间歇滚动 * 程序调整 * 连续间歇滚动停止的错误 1.0.060901 + 向下、向右滚动 + 开始等待时间 + 连续滚动 * 调整时间单位 * ...
一、JavaScript语言特点 1.1、JavaScript是基于对象和事件驱动的(动态的) 它可以直接对用户或客户输入做出响应,无须经过Web服务程序。它对用户的响应,是采用以事件驱动的方式进行的。所谓事件驱动,就是指在主页...
一个可以代替Marquee走马灯特效的图片滚动封装类,它可控制图片做无缝循环滚动,可以在上下左右四个方面滚动,而且具备丰富自定义设置功能。它的特点: 横向、纵向滚动格式调整 (解决横向滚动换行的问题,无需特殊...
默认的js是同步加载的,这里的“加载”可以理解成是解析、执行,而不是“下载”,在最新版本的浏览器中,浏览器对于代码请求的资源都是瀑布式的加载,而不是阻塞式的,但是js的执行总是阻塞的。这会引起什么问题呢?...
然后将自己的Js代码逐段调式,在花了两个多小时后终于以外的发现是由Json最后一个键值后加了逗号引起的问题。 在网上查了一下,发现好多人也遇到的这种问题。以后要小心了。 代码如下: var obj = {
一个示例仓库,展示了发布到NPM的浏览器模块的package.json配置 讲解员 这是一个示例存储库,说明了创建特定于浏览器的NPM模块的一些概念。 尽管发布到NPM的许多(诚然是大多数)模块都是针对Node环境的,但是此...
Vux 构建,站点部署在IIS8.5上),遇到个非常奇葩的问题,发布站点内容后,通过微信打开网址发现是空白页面(后来验证是微信浏览器缓存了入口文件-index.html,顾之前版本的index页面找不到对应的js,因为我们每次发布...
JavaScript插件,用于在用户操作和页面事件上播放声音。 版本:3.0.7描述Ion.Sound —用于基于Web Audio API播放声音JavaScript插件。 插件可以在大多数流行的桌面和移动浏览器上运行,并且可以在从通用网站到浏览器...