瀏覽器差異

2022-03-31 13:27:38 字數 1954 閱讀 2247

移動端瀏覽器沒報錯無法看報錯資訊

移動端真機除錯,引入vconsole

array.prototype.slice.call(document.getelementbyid("test").childnodes);

用上面的方法可以把 id 為 test 的子節點轉換成陣列

ie8及之前不能直接這樣使用

解決方案

function toarray(nodes)  catch (e) 

}return array;

}

事件處理

ie8及之前不支援addeventlistener。同時ie8及之前只支援時間冒泡,通過attachevent()新增的事件程式會被新增到冒泡階段。

attachevent和addeventlistener 比較相似,除了attachevent的事件引數都需要加上on ,事件觸發的this指向的是window而不是被觸發的元素作用域,繫結多個事件時順序從後往前執行(和js原本的執行順序相反)。

解決方案

/*

* element傳入的是獲取到的元素

* type傳入的是監聽的事件

* handler傳入的是觸發的函式

*/var eventutil = else if (element.attachevent) else

},removehandler: function(element, type, handler) else if (element.detachevent) else

}}

事件物件屬性差別

ie中的事件物件是window.event,同時event.srcelement與dom中的event.target相同。dom 0級中,等於this。在dom 2級中不等於this。

var mybtn = document.getelementbyid('mybtn');

mybtn.onclick = function();

mybtn.attachevent('onclick', function(event));

ie的event.cancelbubble屬性(賦值為true或false) 和 dom裡的event.stoppropagation() 相同

ie的event.returnvalue屬性(賦值為true或false) 和 dom裡的event.preventdefault() 相同

相容性解決方案:

var eventutil = ,

gettarget: function(e) ,

preventdefault: function(e) else

},stoppropagation: function(e) else

}}btn.onclick = function(e)

事件區別

滑鼠滾輪事件

大部分瀏覽器中滾輪事件為mousewheel,firefox裡是dommousescroll。

同時mousewheel往前是120的倍數,往後是-120的倍數。

但是在firefox裡,往前滾是-3的倍數,往後滾是3的倍數。數值乘上40再將正負數對換解決相容問題。

鍵盤事件

除了firefox,向上鍵、向下鍵等特殊鍵不會觸發keypress事件。

現代瀏覽器按鍵字元編碼是event.keycode,ie8及之前用的是event.charcode。

event.keycode在firefox裡,字母及數字都為0,向上鍵、向下鍵等特殊鍵顯示字元編碼。而event.which 則是向上鍵向下鍵等特殊鍵都為0,字母及數字正常顯示字元編碼。

瀏覽器css差異

一 css選擇器差異 乙個css的ie和ff差異,popup container alert 在ie6下alert類只能作用於 popup container的子元素。ff下alert類可以作用於 popup container和其子元素。二 z index在ie中的迷惑 z index屬性適用於定...

瀏覽器差異記錄

1.content home content 問題補充 我知道是寬度,width 與 width 區別是什麼,哦,謝謝。回答 下劃線 ie6支援下劃線,ie7和firefox等均不支援下劃線。你那個 的意思就是ie6下面寬度 449px 其他瀏覽器下寬度 460px 2.把乙個做為背景,在上面輸入文...

引數傳遞的瀏覽器差異

情況大體是這樣的 乙個頭頁面header.jsp上有乙個搜尋框,輸入關鍵字之後提交到另乙個搜尋頁面search.jsp輸出搜尋結果 header.jsp在業務應用下,search.jsp在發布系統的應用下,兩個應用使用同乙個tomcat。關鍵字keyword作為引數傳遞到搜尋頁面search.jsp...