在做DHTML开发的时候,依赖一些页面元素的得值来作为页面的状态的判断,初看似乎并没有什么问题。可是在后期的开发和维护中,却是一个随时可能产生莫名其妙bug的隐藏炸弹。如果不小心引爆,那就只有郁闷的份了

问题示例:在制作一个带有多个框架的框架页面时,由于为了一时的简单,直接使用了frame的宽度来作为页面状态的判断条件,代码如下:

var dimFrameWidth = parent.main.cols.split(',')[0];
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

使用页面元素属性做状态判断的隐患相关推荐

  1. JavaScript定位页面元素属性(满满的干货)

    Document对象提供了用来定位HTML页面中特殊元素的方法.跟小编一起来看看吧,保证让你稳赚. documentElement: 获取HTML页面中的<html>元素 head: 获取 ...

  2. jQuery操作页面元素属性和内容

    操作页面元素的属性 A $("#bu1").click(function(){ //获得元素对象 var tex=$("#inp1"); //获得元素对象的属性 ...

  3. selenium 页面经常改变元素_selenium用jquery改变元素属性

    一.jQuery 语法 jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作. 1.基础语法: $(selector).action() 选择符(selector)即," ...

  4. selenium用jquery改变元素属性

    一.jQuery 语法 jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作. 1.基础语法: $(selector).action() 选择符(selector)即," ...

  5. Cypress之模拟键盘鼠标操作以及页面元素拖动操作

    上篇文章讲解了使用cypress框架时,如何上传或者下载文件,以及定位操作iframe和shadow dom下的页面元素.此次课程将讲解如何模拟键盘输入.鼠标操作以及如何拖动页面元素,另外,会介绍如何 ...

  6. php开发是可视的吗,javascript,html_Jquery判断页面元素是否在浏览器的可视区域内,javascript,html,css,html5 - phpStudy...

    Jquery判断页面元素是否在浏览器的可视区域内 前端开发中,有时需要判断某个元素是否在浏览器的可视区域内,或者是否已经滚动出了可视区域.首先想到的便是javascript操作,原生方法自然可以,不过 ...

  7. sku展示php,前端如何展示商品属性:SKU多维属性状态判断算法的应用

    作者 | 周琪力 编辑 | 尾尾 本文为前端之巅周琪力原创,未经作者许可禁止转载. 问题描述 这个问题来源于选择商品属性的场景.比如我们买衣服.鞋子这类物件,一般都需要我们选择合适的颜色.尺码等属性 ...

  8. 学习通页面元素和属性

    1[单选题] HTML5 的全局属性中"contenteditable" 用于(  ). A. 规定元素的上下文菜单,该菜单会在用户点击右键点击元素时出现 B. 规定元素内容是否是 ...

  9. JavaScript frame跨域获取元素、修改元素属性、调用其他frame页面方法

    今天做了一个frameset的集合页面,其中有多个iframe页面,其中点击frame=leftMenu里的按钮元素后,需要修改frame=Header页面里的一个div元素属性. 1.主页面架构 & ...

最新文章

  1. C++ cin不支持录入空格
  2. 无责任书评:每个Java程序员都应该深入理解Java虚拟机!
  3. 基于HBASE的并行计算架构之rowkey设计篇
  4. Istio的零停机滚动更新
  5. jQuery Ajax 如何设置Timeout
  6. 如何选择python书籍_关于 Python 的经典入门书籍有哪些?
  7. linux重置root密码_重置丢失的Linux root密码,错误密码的历史记录,Python,Ruby,课堂解决方案等
  8. php 求 相似 比,php比较相似字符串的方法
  9. 十大最赚钱行业,可惜呀,没我们什么事。
  10. 异步IO框架实现之完成端口(Completion Port)
  11. QTreeView使用总结: 自定义model示例,大大优化性能和内存
  12. python基础练习题:重新排序【难度:1级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
  13. ffmpeg解析出的视频参数PAR,DAR,SAR的意义
  14. Latex 提示错误Improper alphabetic constant
  15. [Eigen中文文档] 归约、访问者和广播
  16. ERROR 1010 (HY000): Error dropping database (can't rmdir './library', errno:
  17. Xmake v2.7.1 发布,更好的 C++ Modules 支持
  18. 成功的礼品公司的产品经营模式
  19. Kubectl :--v 接口调试,以及设置日志输出详细程度
  20. Swin Transformer: Hierarchical Vision Transformer using Shifted Windows(论文翻译)

热门文章

  1. Tensorflow—tensorboard网络结构
  2. 【专家观点】张亚勤、张宏江:人工智能的未来是什么?
  3. IEEE CS:2021年的12大技术趋势
  4. 赛迪研究院发布《2019量子计算发展白皮书》
  5. 院士张钹:AI奇迹短期难再现 深度学习技术潜力已近天花板
  6. 97页PPT,读懂自动驾驶全产业链发展!
  7. 学界 | 清华AMiner团队发布53页计算机图形学研究报告
  8. 深度学习不是AI的未来
  9. “一线城市,年薪30万+,我却裸辞回老家”一个前程序员的 10 年职业思考
  10. 算法学习:常用排序方法