• <ul id="akkyq"><tbody id="akkyq"></tbody></ul>
      <kbd id="akkyq"><pre id="akkyq"></pre></kbd>
    • 
      
      <ul id="akkyq"><tbody id="akkyq"></tbody></ul>
      云錦誠科技專注四川德陽網(wǎng)站設(shè)計 四川網(wǎng)站制作 四川網(wǎng)站建設(shè)
      四川德陽網(wǎng)站建設(shè)公司服務(wù)熱線:028-86922220

      網(wǎng)站建設(shè)知識

      十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊

      量身定制 + 運營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決

      Java工程師可能不知道的那些FE潛規(guī)則

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

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

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

      1)option selected的會clone不過去,然后會將***個option作為selected值

      2)事件clone也會有問題

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

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

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

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

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

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

      2 css對offsetWidth之類的理解不同

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

      3 對于vertical-align baseline的理解不同:

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

      4 設(shè)置背景色

      element.style.backgroundColor

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

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

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

      6 不同瀏覽器對強制換行和強制不換行的理解不同:

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

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

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

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

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