qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          Firefox獲取隱藏表單元素的parent節點的Bug

          getXY : function(element){
          var y = element.offsetTop;
          var x = element.offsetLeft;
          while(element = element.offsetParent){
          y += element.offsetTop;
          x += element.offsetLeft;
          }
          return (new Array(x,y));
          }
            貌似是這個問題,遞歸代碼在火狐下好像有問題,要打樁測一下(不打樁了,有log輸出就容易了)
          getXY : function(element){
          var y = element.offsetTop;
          var x = element.offsetLeft;
          var i=0;
          while(element = element.offsetParent){
          y += element.offsetTop;
          x += element.offsetLeft;
          i++;
          }
          //firefox debug
          console.log(i);
          console.log(y);
          console.log(x);
          return (new Array(x,y));
          }
            在ie9下為4 120 100,正常
            火狐為0 0 0,看來只要換個遞歸的寫法就行了,
            但是這個問題的原因要查清楚,項目里有這種風格寫法的人,可能對于火狐的解析器來說
            while(element = element.offsetParent)估計一開始就等于false啊..具體測試
            具體文章javascript的互等性,要補一下了.
            火狐下element.offsetParent一開始就等于null
            還是要去打樁,bug無法確定了,有可能是遞歸寫法問題,又可能是前面傳的element對象不對
            還是不用打樁,調試時的一個報錯,說明火狐解析器對判斷條件里的element = element.offsetParent的理解是正確的.
            前面的傳參不對,or火狐對offsetParent的屬性理解不對(如果加懸浮布局,那么火狐下是直接父節點直接對應body的,然后當然是null,記得是),沒有使用危險的css屬性,應該不會有問題的啊,
          getXY : function(element){
          var y = element.offsetTop;
          var x = element.offsetLeft;
          var i=0;
          if(!element.offsetParent)
          console.log("null");
          console.log(element.id);
          while(element = element.offsetParent){
          y += element.offsetTop;
          x += element.offsetLeft;
          i++;
          }
          //firefox debug
          console.log(i);
          console.log(y);
          console.log(x);
          return (new Array(x,y));
          }
            傳參正確,獲得的id和在ie下一樣,不過應該沒有并沒有該id對應的對象在頁面中存在,不過ie能理解,這個火狐也是認得,但是貌似這個parent對象火狐處理得和ie不同(直接為空,ie正常)
            差點以為有又有什么我不知道的寫法,xx_xx什么的可以直接一起獲取,當然不可能啊,草,怪怪的語言,隨時提心吊膽的
            是 獲取一個隱藏的input對象的父節點問題,導致常用的遞歸獲取元素絕對坐標方法的遞歸失敗.在firefox下,隱藏表單字段估計直接對應body節點 (猜的),那么就是為空(或者直接就是對象屬性封裝的問題,反正是bug),估計就是這個問題了,稍微修改后BUG被clear(在getXY里用固有結 構,把對象指向日期框后解決)
            offsetParent這個屬性是個level0的屬性,實現各異
            而jq中的>可以跳來跳去,會不會也有這個bug呢?還是jq處理了這個BUG,等有時間再去測試吧
            接下來就是一些css問題,和修復原控件的select的fous問題,還是盡量不要用input這玩意在ie6下并不好,xinput控件調用又太麻煩了
            基于先前研究,進銷存模塊使用的透明圖片加div顏色屬性實現的皮膚效果,可以進行日期控件在保證其他位置引用兼容性的前提下,進行和進銷存模塊獨有的表單皮膚系統整合
            在前輩的指導下修改了getYear(),getFullYear(),火狐是不支持 getYear()的,一開始我還以為那個控件一直是從Const里獲得年月日的,其實是外部調用時傳個date()對象?有時又在控件里建date()對象,當初可能是想做什么吧,中途可能放棄了,那Const里那個年月日是干嘛的,要好好看看去
            發現火狐失去焦點事件的bug,可能比較難改,簡單說就是點擊旁邊后,選擇框不會關..選擇時候的鼠標狀態問題,火狐好像不會變選擇手勢呢

          posted on 2014-11-10 10:11 順其自然EVO 閱讀(499) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄 、selenium and watir webdrivers 自動化測試學習

          <2014年11月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 余庆县| 黑水县| 南投县| 潍坊市| 休宁县| 石嘴山市| 鹤庆县| 出国| 武义县| 桂阳县| 凤山县| 乌兰县| 霸州市| 靖宇县| 庆云县| 光山县| 竹溪县| 靖江市| 淮南市| 行唐县| 宝兴县| 江门市| 休宁县| 商洛市| 菏泽市| 乌什县| 博罗县| 长子县| 罗山县| 墨脱县| 仙游县| 年辖:市辖区| 滦南县| 上高县| 酒泉市| 庆安县| 治县。| 蒲江县| 陇南市| 柯坪县| 邻水|