`
yunfuby126
  • 浏览: 6425 次
  • 性别: Icon_minigender_2
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

一个由于浏览器引起的js问题

阅读更多

今天同事反映了一个奇怪的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

    修复ios浏览器局部滚动因不满一屏而引起的bug

    2013最新猎豹安全浏览器 3.0.14 官方正式版

    -修正极速内核由于js 运行时间过长引起的页面卡死 -修正Win8下无法使用输入法、视频弹出窗口可能会白屏、视频弹出窗口可能会重新加载的问题 金山猎豹浏览器1.0 build 2312 更新日志: 修正账号登陆时崩溃的问题;...

    解决浏览器对trim()方法的支持问题

    解决浏览器对trim()方法的支持问题。开发是解决浏览器的兼容问题,发现某些浏览器对trim()方法不支持引起了问题

    详解JS浏览器事件循环机制

    浏览器是多进程的,浏览器每一个 tab 标签都代表一个独立的进程(也不一定,因为多个空白 tab 标签会合并成一个进程),浏览器内核(浏览器渲染进程)属于浏览器多进程中的一种。 浏览器内核有多种线程在工作。 GUI ...

    判断浏览器的javascript版本的代码

    话说最近在研究某著名跟踪系统,在其给用户的实施代码中有一段判断浏览器Javascript版本的代码引起了我的注意,于是问了下google如何判断浏览器的javascript版本

    JS中toFixed()方法引起的问题如何解决

    最近发现JS当中toFixed()方法存在一些问题,采用原生的Number对象的原型对象上的toFixed()方法时,规则并不是所谓的“四舍五入”或者是“四舍六入五成双”,所谓“四舍六入五成双”,在百度百科上给的解释是:也即...

    irmin-js:Irmin的Javascript绑定

    伊尔敏提供了类似Git的API用于数据存储。 可以使用将其编译为Javascript并在浏览器中运行,并使用... 在任何情况下,无论是由于合同,疏忽或其他类似措施而引起的任何特殊,直接,间接或后果性的损害,或由于使用,

    javascript 跨域问题以及解决办法

    跨域这个问题是由于浏览器的同源策略引起的,请求的URL地址,必须与浏览器的URL是相同协议、相同域名、相同端口的,否则是不允许访问的 浏览器URL 要访问的URL 结果 http://www.123.com/index ...

    浏览器解析js生成的html出现样式问题的解决方法

    我实现的功能是添加标签,无刷新地...左侧为js生成的html,右侧为页面(.aspx)中的html 引起样式差异的原因可能就是左侧缺少换行,我就在每行字符的末尾加了换行符”\n”,这样样式的问题就解决拉 代码如下: var html

    大名鼎鼎SWFUpload- Flash+JS 上传

     SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash与JavaScript技术为WEB开发者提供了一个具有丰富功能继而超越传统标签的文件上传模式。 [编辑本段]SWFUpload的主要特点  * 可以...

    browsengine:任何设备上浏览器的引擎检测脚本

    Browsengine 这是一个小型库,用于检测不同的浏览器引擎、它们的版本以及它们运行在整个网络上的设备。 它的工作原理是处理浏览器引擎提供的信息,并将这些信息放在 &lt;body&gt; 标签的class属性中。前言JavaScript...

    JavaScript的并行编程扩展RiverTrail.zip

    目前River Trail还是作为一个Firefox浏览器扩展存在的,尚不清楚是否会引起其他厂家的注意并引入到各自的Javascript引擎中,例如V8。另外, 在原文的评论部分,Intel还解释了River Trail和Web Workers的不同,并欢迎...

    MSClass的JS包

    * 浏览器兼容问题 (IE、FF、Opera、NS、MYIE) 1.2.060922 + 指定范围间歇滚动 * 程序调整 * 连续间歇滚动停止的错误 1.0.060901 + 向下、向右滚动 + 开始等待时间 + 连续滚动 * 调整时间单位 * ...

    JavaScript学习小结(一)——JavaScript入门基础

    一、JavaScript语言特点 1.1、JavaScript是基于对象和事件驱动的(动态的)  它可以直接对用户或客户输入做出响应,无须经过Web服务程序。它对用户的响应,是采用以事件驱动的方式进行的。所谓事件驱动,就是指在主页...

    JS封装的滚动类,文字图片不间断滚动代码大全.rar

    一个可以代替Marquee走马灯特效的图片滚动封装类,它可控制图片做无缝循环滚动,可以在上下左右四个方面滚动,而且具备丰富自定义设置功能。它的特点: 横向、纵向滚动格式调整 (解决横向滚动换行的问题,无需特殊...

    JavaScript异步加载问题总结

    默认的js是同步加载的,这里的“加载”可以理解成是解析、执行,而不是“下载”,在最新版本的浏览器中,浏览器对于代码请求的资源都是瀑布式的加载,而不是阻塞式的,但是js的执行总是阻塞的。这会引起什么问题呢?...

    IE6/IE7中JavaScript json提示缺少标识符、字符串或数字问题处理

    然后将自己的Js代码逐段调式,在花了两个多小时后终于以外的发现是由Json最后一个键值后加了逗号引起的问题。 在网上查了一下,发现好多人也遇到的这种问题。以后要小心了。 代码如下: var obj = {  

    howto-browser-modules:一个示例仓库,展示了发布到NPM的浏览器模块的package.json配置

    一个示例仓库,展示了发布到NPM的浏览器模块的package.json配置 讲解员 这是一个示例存储库,说明了创建特定于浏览器的NPM模块的一些概念。 尽管发布到NPM的许多(诚然是大多数)模块都是针对Node环境的,但是此...

    解决微信浏览器缓存站点入口文件(IIS部署Vue项目)

    Vux 构建,站点部署在IIS8.5上),遇到个非常奇葩的问题,发布站点内容后,通过微信打开网址发现是空白页面(后来验证是微信浏览器缓存了入口文件-index.html,顾之前版本的index页面找不到对应的js,因为我们每次发布...

    ion.sound:JavaScript插件,可在浏览器中播放声音和音乐

    JavaScript插件,用于在用户操作和页面事件上播放声音。 版本:3.0.7描述Ion.Sound —用于基于Web Audio API播放声音JavaScript插件。 插件可以在大多数流行的桌面和移动浏览器上运行,并且可以在从通用网站到浏览器...

Global site tag (gtag.js) - Google Analytics