Firefox獲取隱藏表單元素的parent節(jié)點(diǎn)的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)); } |
貌似是這個(gè)問題,遞歸代碼在火狐下好像有問題,要打樁測(cè)一下(不打樁了,有l(wèi)og輸出就容易了)
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,看來只要換個(gè)遞歸的寫法就行了,
但是這個(gè)問題的原因要查清楚,項(xiàng)目里有這種風(fēng)格寫法的人,可能對(duì)于火狐的解析器來說
while(element = element.offsetParent)估計(jì)一開始就等于false啊..具體測(cè)試下
具體文章javascript的互等性,要補(bǔ)一下了.
火狐下element.offsetParent一開始就等于null
還是要去打樁,bug無法確定了,有可能是遞歸寫法問題,又可能是前面?zhèn)鞯膃lement對(duì)象不對(duì)
還是不用打樁,調(diào)試時(shí)的一個(gè)報(bào)錯(cuò),說明火狐解析器對(duì)判斷條件里的element = element.offsetParent的理解是正確的.
前面的傳參不對(duì),or火狐對(duì)offsetParent的屬性理解不對(duì)(如果加懸浮布局,那么火狐下是直接父節(jié)點(diǎn)直接對(duì)應(yīng)body的,然后當(dāng)然是null,記得是),沒有使用危險(xiǎn)的css屬性,應(yīng)該不會(huì)有問題的啊,
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下一樣,不過應(yīng)該沒有并沒有該id對(duì)應(yīng)的對(duì)象在頁(yè)面中存在,不過ie能理解,這個(gè)火狐也是認(rèn)得,但是貌似這個(gè)parent對(duì)象火狐處理得和ie不同(直接為空,ie正常)
差點(diǎn)以為有又有什么我不知道的寫法,xx_xx什么的可以直接一起獲取,當(dāng)然不可能啊,草,怪怪的語言,隨時(shí)提心吊膽的
是 獲取一個(gè)隱藏的input對(duì)象的父節(jié)點(diǎn)問題,導(dǎo)致常用的遞歸獲取元素絕對(duì)坐標(biāo)方法的遞歸失敗.在firefox下,隱藏表單字段估計(jì)直接對(duì)應(yīng)body節(jié)點(diǎn) (猜的),那么就是為空(或者直接就是對(duì)象屬性封裝的問題,反正是bug),估計(jì)就是這個(gè)問題了,稍微修改后BUG被clear(在getXY里用固有結(jié) 構(gòu),把對(duì)象指向日期框后解決)
offsetParent這個(gè)屬性是個(gè)level0的屬性,實(shí)現(xiàn)各異
而jq中的>可以跳來跳去,會(huì)不會(huì)也有這個(gè)bug呢?還是jq處理了這個(gè)BUG,等有時(shí)間再去測(cè)試吧
接下來就是一些css問題,和修復(fù)原控件的select的fous問題,還是盡量不要用input這玩意在ie6下并不好,xinput控件調(diào)用又太麻煩了
基于先前研究,進(jìn)銷存模塊使用的透明圖片加div顏色屬性實(shí)現(xiàn)的皮膚效果,可以進(jìn)行日期控件在保證其他位置引用兼容性的前提下,進(jìn)行和進(jìn)銷存模塊獨(dú)有的表單皮膚系統(tǒng)整合
在前輩的指導(dǎo)下修改了getYear(),getFullYear(),火狐是不支持 getYear()的,一開始我還以為那個(gè)控件一直是從Const里獲得年月日的,其實(shí)是外部調(diào)用時(shí)傳個(gè)date()對(duì)象?有時(shí)又在控件里建date()對(duì)象,當(dāng)初可能是想做什么吧,中途可能放棄了,那Const里那個(gè)年月日是干嘛的,要好好看看去
發(fā)現(xiàn)火狐失去焦點(diǎn)事件的bug,可能比較難改,簡(jiǎn)單說就是點(diǎn)擊旁邊后,選擇框不會(huì)關(guān)..選擇時(shí)候的鼠標(biāo)狀態(tài)問題,火狐好像不會(huì)變選擇手勢(shì)呢
posted on 2014-11-10 10:11 順其自然EVO 閱讀(499) 評(píng)論(0) 編輯 收藏 所屬分類: 測(cè)試學(xué)習(xí)專欄 、selenium and watir webdrivers 自動(dòng)化測(cè)試學(xué)習(xí)