`
tjuking
  • 浏览: 194897 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

IE8以下实现焦点置回功能遇到的设计问题

阅读更多

 

最近在写一个web小项目,设计了如下交互环节:

某页面包含两个以上的文本输入框,每个文本框都对输入内容有的校验规则(其中的一条就是不允许输入内容为空);

当用户在某文本输入框中输入文本内容后离开输入框时,用jquery绑定blur事件进行校验文本格式是否正确,如果不正确则重新将焦点置回该输入框。

 

产生bug步骤如下:

当我在第一个输入框中输入不符合格式的文本时直接点击进入另外一个需要校验的输入框时,IE8以下版本的浏览器直接崩溃无法响应。

 

分析如下:

由于在离开第一个输入框时触发了blur事件,需要将在第二个输入框的焦点置回第一个输入框中,

而在离开第二个输入框时同样触发了blur事件,检查此时的文本值为空不符合验证条件又需要将在第一个输入框的焦点置回第二个焦点。。。。

好了,死循环出现了。。。。

 

虽然Chrome、Firefox、Ie9都十分智能屏蔽了这样消耗内存的举动,但是还有老版本的IE在告诉我们设计交互时逻辑要严谨,不然弄巧成拙就不好了。

 

(虽然这样的交互设计比较少见,也许真的不一定是交互性好,但是作为技术探讨,大家可以研究一下如何实现这样的问题避免死循环)

 

分享到:
评论

相关推荐

    bootstrop兼容IE8的代码

    然而,Bootstrap原生版本并不支持Internet Explorer 8(IE8)及以下版本,因为这些浏览器不支持某些CSS3和HTML5特性,而Bootstrap大量依赖这些特性实现其功能。但在一些项目中,由于业务需求或用户群体的原因,可能...

    win7 下IE8修复器 IE8浏览器修复 IE8修复工具

    绿色版比较适合Win7系统中用来修复IE8浏览器的,它能够修复的功能有新选项卡无响应、窗口无法弹出、无法打开IE选项和不能打开IE新选项卡等问题进行一一修复。还支持重置各种设置、还原后仍不能解决等问题,总之如果...

    Promise在ie8等不支持Promise的浏览器上的完整实现

    通过以上步骤,我们可以逐步构建一个兼容IE8的Promise实现。这样的实现不仅允许开发者在旧版本的浏览器中使用Promise,还可以帮助他们更好地理解和掌握Promise的工作原理。在实际项目中,可以考虑使用polyfill库,如...

    IE8升IE10补丁.rar

    【标签】"IE8升IE10补丁"强调了这个压缩包的主要功能,即帮助用户解决从IE8版本升级到IE10版本的问题。标签通常用于快速识别文件内容,方便搜索和分类。 【压缩包子文件的文件名称列表】虽然没有具体列出,但通常会...

    winXP系统IE6升级IE8

    以下是关于"winXP系统IE6升级IE8"的具体步骤和相关知识点: 1. **准备工作**:首先,确保系统已更新至最新的Service Pack,通常是SP3。这可以通过“控制面板”>“系统”>“自动更新”进行检查或安装。 2. **下载...

    IE8升级包IE8升级包

    标题中的“IE8升级包”指的是Internet Explorer 8(简称IE8)的更新程序,用于将旧版本的Internet Explorer,特别是IE6,升级到IE8。IE8是微软在2009年发布的一个浏览器版本,它带来了许多新功能和性能改进,包括更...

    下拉多选组件sumoselect,兼容IE8

    为了解决这个问题,"SumoSelect"应运而生,它是一个专门设计来兼容IE8的多选下拉框组件,同时保持了简单易用和体积小巧的特点。 SumoSelect是一款强大的JavaScript插件,由jQuery库支持,能够将传统的HTML select...

    百度编辑器1.4.3.3版本IE8兼容性问题

    描述中提到的问题,即在高版本IE上ueditor运行正常,但IE8环境下出现错误,这可能是由于ueditor在设计时使用了IE8不支持的ES5特性,比如`Array.prototype.forEach`、`Array.prototype.map`等。此外,可能还涉及到DOM...

    IE8 下的问题 转化成IE7 模式.rar

    标题中的“IE8 下的问题 转化成IE7 模式”暗示了这是一个关于解决在Internet Explorer 8(简称IE8)浏览器中遇到的问题,而这些问题可以通过将浏览器的行为模拟为较旧版本的IE7来解决。这通常涉及到浏览器的兼容性...

    K8焦点图JS特效代码 几行就搞定 兼容IE6 7 8 9 10 FF等浏览器

    最后是JavaScript代码,实现焦点图的逻辑。如果代码量很少,说明其可能使用了高效的编程技巧或者现成的库,例如`jQuery`的插件。 为了在项目中使用K8焦点图,你需要按照以下步骤操作: 1. 将K8焦点图的JavaScript...

    IE8修复工具

    【标题】"IE8修复工具"是一个专门针对Internet Explorer 8(简称IE8)浏览器的维护和优化软件,旨在解决用户在使用过程中遇到的各种问题。IE8是微软开发的一个较早版本的网络浏览器,尽管现在已被更现代的浏览器版本...

    IE8换回IE6的最简单办法

    尽管IE8在功能上全面超越了IE6,但在实际应用中,仍有一部分用户或企业环境存在以下需求: 1. **软件兼容性**:某些旧版应用程序或企业内部系统可能仅支持IE6,使用IE8或其他现代浏览器可能导致页面显示异常或功能...

    简易的IE浏览器,实现了基本的功能。

    在描述中提到,这个简易的IE浏览器实现了以下几个关键功能: 1. **前进**:允许用户导航到之前访问过的网页,通过点击前进按钮实现。 2. **后退**:与前进功能相反,用户可以点击后退按钮回到之前的浏览历史。 3. *...

    上传插件支持ie8

    这使得在IE8上实现一些现代Web功能,如拖放上传、多文件选择等,变得尤为困难。 上传插件的核心任务是提供一个用户友好的界面,允许用户在PC端或H5页面上选择和上传文件。对于IE8,我们需要采用兼容其特性的技术...

    非IE浏览器实现IE功能.rar

    标题“非IE浏览器实现IE功能.rar”所涉及的知识点主要集中在如何在非Internet Explorer(IE)浏览器上模拟或实现IE特有的功能,特别是针对OCX(ActiveX Control)控件的加载。描述中提到的“IE Tab”是一个插件,...

    IE8

    9. **兼容性问题**: 尽管IE8在Web标准支持上有所进步,但由于存在多个渲染模式,即“Quirks模式”、“IE7标准模式”和“IE8标准模式”,这导致了一些与旧网站的兼容性问题。 10. **系统需求**: IE8主要为Windows XP...

    IE8浏览器离线安装包

    此外,IE8还引入了独立的渲染模式(称为“兼容性视图”),用于解决旧版网页在新浏览器上的显示问题。 **7. 性能优化** 为了提高浏览速度和响应性,IE8进行了多项性能优化,包括更快的页面加载、更高效的JavaScript...

    IE8综合修复工具

    该工具专为解决IE8的常见问题而设计,它的主要功能包括: 1. **修复IE8核心**:当IE8出现无法打开网页、频繁崩溃或运行缓慢等问题时,修复工具能扫描并修复浏览器的核心组件,确保其正常运行。 2. **恢复设置**:...

    兼容IE7、IE8、IE9的input type="number"插件

    "兼容IE7、IE8、IE9的input type="number"插件"是专门为解决这个问题而设计的。这个插件的目标是在不支持`type="number"`的旧版IE浏览器中实现类似的功能,包括设置最大值(`max`)、最小值(`min`)以及步进值(`...

    IE8兼容video

    在IE8中实现`<video>`兼容性通常涉及以下步骤: 1. **使用Flash**: Flash Player是一种常见的解决方案,尤其在HTML5未普及之前。开发者可以使用SWFObject库来检测浏览器是否支持Flash,并根据结果插入相应的Flash...

Global site tag (gtag.js) - Google Analytics