今天同事反映了一个奇怪的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
相关推荐
1. window.print()方法:这是一个JavaScript内置方法,可以触发浏览器的打印对话框。使用此方法时,打印的是当前window.document.body.innerHTML中的内容。这是一个简单直接的方法,但可能会引起页面内容的变化,...
由于JavaScript可以直接访问暴露的C#对象,因此需要确保暴露的方法不会引起安全漏洞或性能问题。 8. **性能优化**:根据应用的需求,可能需要对CEF进行一些性能优化,比如禁用不必要的功能、减少内存占用、优化渲染...
然而,在使用SPA时,一个常见的问题是如何处理浏览器的后退按钮。在传统的多页面应用(MPA)中,用户可以自由地在各个页面之间前进和后退。但在SPA中,由于只有一个页面,所以管理历史记录的方式略有不同。 首先,...
在iOS设备上,尤其是Safari浏览器中,遇到一个常见的问题:当页面的某个部分(如一个div)设置了局部滚动,并且其内容不满一屏时,滚动功能可能无法正常工作。这个问题通常与iOS的WebKit浏览器引擎的渲染机制有关。...
这种问题通常是由于浏览器的兼容性问题、JavaScript代码执行顺序、或者资源加载顺序不当所引起的。以下是一些有效的解决策略。 首先,当遇到“对象未定义”的错误时,我们需要进行基础的排查工作。确保所有的...
再者,JSLeaksDetector是一个全面的JavaScript内存泄漏检测工具,它不仅适用于Chrome、Firefox等现代浏览器,还支持IE。JSLeaksDetector通过模拟不同的用户行为,检测并报告可能导致内存泄漏的代码片段。...
iFrame 自适应高度(兼容所有主浏览器) iFrame 自适应高度是前端开发中常见的...iFrame 自适应高度是前端开发中需要注意的问题,需要深入探讨以解决 JS 操作 DOM 引起的高度变化问题,并且需要注意浏览器兼容性问题。
这些错误通常由于软件与硬件之间的兼容性问题引起。通过使用专门为x86架构优化的Chrome APK,这些问题可以得到解决,确保在平板和模拟器上稳定运行。 在Android 4.4(KitKat)上使用这个版本的Chrome,用户可以期待...
这个提示通常以一个浮动的DIV元素形式出现在页面顶部,不影响主要内容的展示,但能引起用户的注意。 在实际操作中,实现这个功能的方式有多种。一种常见的方法是使用JavaScript的UserAgent字符串来检测浏览器类型和...
当遇到"ASP.NET开发的网页在浏览器中运行速度特别慢"的问题时,这可能是由多种因素引起的,包括但不限于网络延迟、服务器响应时间、JavaScript执行效率、CSS和HTML的加载顺序等。为了找出问题的症结所在,我们可以...
-修正极速内核由于js 运行时间过长引起的页面卡死 -修正Win8下无法使用输入法、视频弹出窗口可能会白屏、视频弹出窗口可能会重新加载的问题 金山猎豹浏览器1.0 build 2312 更新日志: 修正账号登陆时崩溃的问题;...
例如,可以为所有文本元素添加一个默认的`line-height`值,以减少不同浏览器之间的高度差异。 2. **容器高度限定问题**: 避免在Firefox中给容器设置固定高度(`height`),因为这可能导致内容溢出。在IE中,内容...
360浏览器作为中国互联网用户广泛使用的网页浏览工具,其4.0正式版的发布无疑在当时的市场上引起了不小的反响。相较于后续版本,如5.0,许多用户认为4.0版本更胜一筹,这究竟是什么原因呢?本文将深入探讨360浏览器...
在微信中访问Web页面时,有时开发者为了提供更好的用户体验或者强制用户在浏览器环境中打开网页,会选择添加一个遮罩层,并在右上角显示“在浏览器中打开”的提示按钮。这样的设计能够确保用户能够充分利用Web页面的...
描述中的“本代码演示了在浏览器中不会弹出警告的ActiveX”意味着提供了一段代码实例,展示了如何创建这样一个不会引起警告的ActiveX控件。这可能涉及到对控件的数字签名、注册过程、或浏览器的安全设置进行调整。 ...
标题中的“所有浏览器点击任意链接跳出随机页面JS”是指一种JavaScript技术,用于在用户点击网页上的任何链接时,能够触发一个随机页面的弹出。这种技术通常涉及到浏览器的事件监听、DOM操作以及JavaScript的随机数...
"jquery判断浏览器版本过低代码.zip"这个压缩包提供了一个解决方案,它包含了一个JavaScript代码片段,用于检测浏览器是否支持HTML5和CSS3,并在不支持的情况下提示用户升级或更换浏览器。 jQuery是一个广泛使用的...
在Web前端开发中,浏览器兼容性问题是一个常见的挑战,尤其是涉及到HTML、CSS和JavaScript的实现时。本文主要探讨的是CSS在不同浏览器,特别是IE浏览器中的兼容性问题及其解决方案。 1. **CSS垂直居中问题**:在CSS...
以下是一个简单的示例代码,演示如何在JavaScript中关闭窗口: ```javascript window.opener = null; // 防止出现确认提示框 window.close(); // 关闭窗口 ``` 2. 使用批处理文件(.bat)结合Windows任务计划...
4. **单进程模型**:不同于之前的多进程架构,IE9采用了单进程模型,每个打开的标签页都在同一个进程中运行,但每个标签页都有独立的JavaScript执行环境,这样既节省了系统资源,又提高了稳定性。 5. **增强的安全...