在做dhtml開發的時候,依賴一些頁面元素的得值來作為頁面的狀態的判斷,初看似乎並沒有什麼問題。可是在後期的開發和維護中,卻是乙個隨時可能產生莫名其妙bug的隱藏炸彈。如果不小心引爆,那就只有鬱悶的份了
問題示例:在製作乙個帶有多個框架的框架頁面時,由於為了一時的簡單,直接使用了frame的寬度來作為頁面狀態的判斷條件,**如下:
這個示例中的**在起初的執行和測試中都完全正確,可是不知道從什麼後開始,出來了莫名其妙的bug,poweranalyst.queryinfosnapshot的值變得不是很確定,有的時候對有的時候又不對。經過tester和我挺長時間的研究,最後發現居然是因為乙個後來新增的功能影響了對frame寬度的判斷。
在起初的設計裡,框架頁左面的frame是始終顯示的,所以我想當然的為了"偷懶",就使用了左邊那個frame的寬度來做為了該頁面的狀態判斷標誌。可是後來增加了乙個摺疊左面frame功能,就像我們常用的web mail管理介面裡收起左邊frame的那種功能。這樣潛在的問題就悄悄的來了,當使用者在使用時手動摺疊了左面的frame後,上面的**對頁面狀態的判斷就歇菜了
使用頁面元素屬性做狀態判斷的隱患
在做dhtml開發的時候,依賴一些頁面元素的得值來作為頁面的狀態的判斷,初看似乎並沒有什麼問題。可是在後期的開發和維護中,卻是乙個隨時可能產生莫名其妙bug的隱藏炸彈。如果不小心引爆,那就只有鬱悶的份了。問題示例 在製作乙個帶有多個框架的框架頁面時,由於為了一時的簡單,直接使用了frame的寬度來作...
使用JS操作頁面元素屬性
1 如何用jquery動態改變輸入框的readonly屬性 input attr readonly readonly 新增readonly屬性 input removeattr readonly 移除readonly屬性 input name username attr readonly reado...
jQuery判斷元素是否使用某個屬性 樣式
判斷class屬性中是否含有某個樣式 var hs selector hasclass cls 返回結果是boolean值,可直接用來判定是否使用。例項 var has btnid hasclass active if has else判斷元素是否使用某個屬性 獲取屬性值的方法 selector a...