1、childNodes引入空白節(jié)點(diǎn)問題:使用childElementCount或children
2、innerText: FF中不支持該屬性,使用textContent代替
3、變量名與某HTML對(duì)象id相同時(shí),引用該變量只會(huì)取得id名與其相同的html對(duì)象(ie8-);聲明變量時(shí)前面一律加上var,盡量避免id名與變量名相同
4、為ele.style.property賦值時(shí)一律帶上單位:e.style.height= 34 + ‘px’
5、禁止選擇網(wǎng)頁(yè)內(nèi)容:
6、訪問form中的元素:ff只支持document.formName.elements['elementName']的方式,ie下可以使用document.formName.item('name');統(tǒng)一使用elements的方式;凡是遇到集合類對(duì)象(NodeCollection、NodeList)一律使用collection['name']的方式
7、自定義html元素特性問題:IE下可以使用e.selfAttr = variable/e.selfAttr方式來設(shè)值和取值,F(xiàn)F中只能使用e.setAttribute(attr, value)/e.getAttribute('attr')方式
8、input元素的type特性問題:IE下該屬性是只讀的,F(xiàn)F中可以動(dòng)態(tài)設(shè)置;一律不能修改,若需要修改則刪除原來元素,重新創(chuàng)建新元素
9、window.location.href問題:就瀏覽器可以通過這種方式來獲取當(dāng)前頁(yè)面url;應(yīng)當(dāng)統(tǒng)一使用window.location來方位頁(yè)面url,如:location.hostname,location.port,location.pathname
10、在瀏覽器中打開新窗口問題:
View Code
11、body載入問題:FF中的body對(duì)象在body標(biāo)簽為載入完全時(shí)即可訪問,IE下必須完全讀入后才執(zhí)行
12、function、new function(){}、new Function('.....')三者的區(qū)別
13、FF中不支持e.parentElement方式方位父元素,只能使用e.parentNode方式
14、Table操作問題,IE中無法使用innerHTML方式對(duì)table和tr進(jìn)行操作;一般方法是借助js類庫(kù),將innerHLML轉(zhuǎn)化為dom節(jié)點(diǎn),并插入到tbody下
15、IE下不支持使用e.setAttribute方式來整體設(shè)值style屬性問題:同時(shí)使用e.setAttribute('style', '.......')和e.style.cssText = ‘。。。。。。。’方式來設(shè)置
16、document.createElement('<div class="name"></div>')方式創(chuàng)建html元素在FF中不支持
17、iframe問題:
<iframe src="xxx.html" id="frameId" name="frameName" />
IE 中可以通過window.top.frmaeId或window.top.frameName方式來訪問farme;FF中只支持第二種方式;IE在iframe資源未加載完成時(shí)無法訪問iframe.contentWindow對(duì)象
18、url encoding 問題:encodeURIComponent適用于對(duì)url后的參數(shù)編碼、encodeURI:主要用于location對(duì)象跳轉(zhuǎn)時(shí)對(duì)整個(gè)url編碼
19、節(jié)點(diǎn)插入問題:IE:insertAdjacentElement(position,src);FF:insertBefore(src, ref)
20、IE9以下不能訪問html元素的構(gòu)造器,如判斷元素是否為HTMLElement方法只能使用:e.nodeType === 1不能使用 e instanceof HTMLElement方式