最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Java工程師可能不知道的那些FE潛規(guī)則

寫了一個(gè)多月JavaScript,感覺如今可不比幾年前只有IE6的年代,而且過去只是用JS寫個(gè)Ajax或者是簡(jiǎn)單的表單驗(yàn)證,可如今寫一個(gè)稍微復(fù)雜點(diǎn)的小應(yīng)用,要兼容所有瀏覽器,才發(fā)現(xiàn)真是太難了,難怪FE是一個(gè)獨(dú)立的工種,有別于我們這些Java工程師了。如果你也不是專業(yè)FE,那么估計(jì)也會(huì)跟我一樣在這些地方翻船,或許你所遇到的情況比我這些還多,那么歡迎補(bǔ)充。

1 首先是最簡(jiǎn)單的select標(biāo)簽,就有諸多不兼容:

A、 cloneNode方法,對(duì)于非IE瀏覽器沒有問題,對(duì)于IE瀏覽器,我遇到的問題包括:

1)option selected的會(huì)clone不過去,然后會(huì)將***個(gè)option作為selected值

2)事件clone也會(huì)有問題

B、Readonly:對(duì)于IE6,可以通過以下方法將select設(shè)為readonly:

obj.onbeforeactive=function(){return false}
obj.onfocus=function(){obj.blur();}
obj.onmouseover=function(){obj.setCapture();}
obj.onmouseout=function(){obj.releaseCapture();}

對(duì)于其他瀏覽器,我采用的是元素替代法,動(dòng)態(tài)創(chuàng)建一個(gè)input標(biāo)簽,把值賦給它,然后將select隱藏。

C、select的z-index對(duì)于IE6無(wú)效,網(wǎng)上有很多關(guān)于這個(gè)討論,jQuery采用一個(gè)iframe搞定

D、動(dòng)態(tài)添加option的方法不同,這個(gè)網(wǎng)上一搜一大堆

E、對(duì)于onclick和onchange的響應(yīng)不同,在FF下可以在onclick select時(shí)動(dòng)態(tài)讀取option值然后構(gòu)建option,然后選中一個(gè)值后執(zhí)行onchange事件,但是IE下不能這樣做。

2 css對(duì)offsetWidth之類的理解不同

http://newleague.iteye.com/blog/765535

3 對(duì)于vertical-align baseline的理解不同:

http://w3help.org/zh-cn/causes/RD1016

4 設(shè)置背景色

element.style.backgroundColor

在firefox下想改變顏色,必須先設(shè)為null,再設(shè)為其他顏色才行,即先取消原來的顏色。

在IE下,想取消顏色,必須設(shè)為''才行,而換其他顏色,無(wú)需先去掉之前的顏色,而如果你設(shè)成了null,反倒不行了。

5 不同瀏覽器去padding的理解不同

6 不同瀏覽器對(duì)強(qiáng)制換行和強(qiáng)制不換行的理解不同:

http://www.cftea.com/c/2009/01/QPDZU40MNW8FYYG3.asp

最惡心的是對(duì)于IE6,如果是我是蚊子,那么在td上寫了word-break:keep-all依然無(wú)效,必須在span上也寫。

7 獲得head節(jié)點(diǎn)的方式不同

在Firefox下可以用window.head,而所有瀏覽器都兼容的方式是document.getElementsByTagName('head')[0]

8 往head上添加css code的方法不同,也就是動(dòng)態(tài)添加