使用页面元素属性做状态判断的隐患
在做DHTML开发的时候,依赖一些页面元素的得值来作为页面的状态的判断,初看似乎并没有什么问题。可是在后期的开发和维护中,却是一个随时可能产生莫名其妙bug的隐藏炸弹。如果不小心引爆,那就只有郁闷的份了。
问题示例:在制作一个带有多个框架的框架页面时,由于为了一时的简单,直接使用了frame的宽度来作为页面状态的判断条件,代码如下:
if ( StringHelper.Trim(dimFrameWidth) != '0' )
{
with(parent.dimTree.DimensionTree)
{
PowerAnalyst.QueryInfoSnapshot = GetQueryInfo();
}
}
这个示例中的代码在起初的运行和测试中都完全正确,可是不知道从什么后开始,出来了莫名其妙的bug,PowerAnalyst.QueryInfoSnapshot的值变得不是很确定,有的时候对有的时候又不对。经过Tester和我挺长时间的研究,最后发现居然是因为一个后来添加的功能影响了对frame宽度的判断。
在起初的设计里,框架页左面的frame是始终显示的,所以我想当然的为了"偷懒",就使用了左边那个frame的宽度来做为了该页面的状态判断标志。可是后来增加了一个折叠左面frame功能,就像我们常用的web mail管理界面里收起左边frame的那种功能。这样潜在的问题就悄悄的来了,当用户在使用时手动折叠了左面的frame后,上面的代码对页面状态的判断就歇菜了。
转载于:https://www.cnblogs.com/birdshome/archive/2005/11/23/282398.html
使用页面元素属性做状态判断的隐患相关推荐
- JavaScript定位页面元素属性(满满的干货)
Document对象提供了用来定位HTML页面中特殊元素的方法.跟小编一起来看看吧,保证让你稳赚. documentElement: 获取HTML页面中的<html>元素 head: 获取 ...
- jQuery操作页面元素属性和内容
操作页面元素的属性 A $("#bu1").click(function(){ //获得元素对象 var tex=$("#inp1"); //获得元素对象的属性 ...
- selenium 页面经常改变元素_selenium用jquery改变元素属性
一.jQuery 语法 jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作. 1.基础语法: $(selector).action() 选择符(selector)即," ...
- selenium用jquery改变元素属性
一.jQuery 语法 jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作. 1.基础语法: $(selector).action() 选择符(selector)即," ...
- Cypress之模拟键盘鼠标操作以及页面元素拖动操作
上篇文章讲解了使用cypress框架时,如何上传或者下载文件,以及定位操作iframe和shadow dom下的页面元素.此次课程将讲解如何模拟键盘输入.鼠标操作以及如何拖动页面元素,另外,会介绍如何 ...
- php开发是可视的吗,javascript,html_Jquery判断页面元素是否在浏览器的可视区域内,javascript,html,css,html5 - phpStudy...
Jquery判断页面元素是否在浏览器的可视区域内 前端开发中,有时需要判断某个元素是否在浏览器的可视区域内,或者是否已经滚动出了可视区域.首先想到的便是javascript操作,原生方法自然可以,不过 ...
- sku展示php,前端如何展示商品属性:SKU多维属性状态判断算法的应用
作者 | 周琪力 编辑 | 尾尾 本文为前端之巅周琪力原创,未经作者许可禁止转载. 问题描述 这个问题来源于选择商品属性的场景.比如我们买衣服.鞋子这类物件,一般都需要我们选择合适的颜色.尺码等属性 ...
- 学习通页面元素和属性
1[单选题] HTML5 的全局属性中"contenteditable" 用于( ). A. 规定元素的上下文菜单,该菜单会在用户点击右键点击元素时出现 B. 规定元素内容是否是 ...
- JavaScript frame跨域获取元素、修改元素属性、调用其他frame页面方法
今天做了一个frameset的集合页面,其中有多个iframe页面,其中点击frame=leftMenu里的按钮元素后,需要修改frame=Header页面里的一个div元素属性. 1.主页面架构 & ...
最新文章
- C++ cin不支持录入空格
- 无责任书评:每个Java程序员都应该深入理解Java虚拟机!
- 基于HBASE的并行计算架构之rowkey设计篇
- Istio的零停机滚动更新
- jQuery Ajax 如何设置Timeout
- 如何选择python书籍_关于 Python 的经典入门书籍有哪些?
- linux重置root密码_重置丢失的Linux root密码,错误密码的历史记录,Python,Ruby,课堂解决方案等
- php 求 相似 比,php比较相似字符串的方法
- 十大最赚钱行业,可惜呀,没我们什么事。
- 异步IO框架实现之完成端口(Completion Port)
- QTreeView使用总结: 自定义model示例,大大优化性能和内存
- python基础练习题:重新排序【难度:1级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
- ffmpeg解析出的视频参数PAR,DAR,SAR的意义
- Latex 提示错误Improper alphabetic constant
- [Eigen中文文档] 归约、访问者和广播
- ERROR 1010 (HY000): Error dropping database (can't rmdir './library', errno:
- Xmake v2.7.1 发布,更好的 C++ Modules 支持
- 成功的礼品公司的产品经营模式
- Kubectl :--v 接口调试,以及设置日志输出详细程度
- Swin Transformer: Hierarchical Vision Transformer using Shifted Windows(论文翻译)