1.獲取樣式表裡面的width,border color 之類的css(不是行間) 主要是IE6-7支持currentStyle,標准浏覽器支持getComputedStyle;
實例:封裝函數
調用:getStyle('color');
2.獲取滾動的距離
document.body.scrollTop 適用於 標准浏覽器
document.documentElement.scrollTop 適用於IE9以下版本
兼容性可以這樣寫
var top = document.body.scrollTop | document.documentElement.scrollTop;
3.事件對象
標准浏覽器:事件對象作為事件函數的參數
IE低版本 需要直接用event對象(全局)
現在event就作為了事件對象
4.綁定事件 IE 的綁定事件為 attachEvent/detachEvent(綁定或取消);標准浏覽器 addEventListener/removeEventListener(綁定或取消)
以下是事件綁定或取消的參數,在事件綁定中 函數不能是匿名函數 否則取消不掉
addEventListener的使用方式:
target.addEventListener(type, listener, useCapture);
target: 文檔節點、document、window 或 XMLHttpRequest。
type: 字符串,事件名稱,不含“on”,比如“click”、“mouseover”、“keydown”等。
listener :實現了 EventListener 接口或者是 JavaScript 中的函數。
useCapture :是否使用捕捉,一般用 false 。例如:document.getElementById("testText").addEventListener("keydown", function (event) { alert(event.keyCode); }, false);
IE中:
target.attachEvent(type, listener);
target: 文檔節點、document、window 或 XMLHttpRequest。
type: 字符串,事件名稱,含“on”,比如“onclick”、“onmouseover”、“onkeydown”等。
listener :實現了 EventListener 接口或者是 JavaScript 中的函數。 例如:document.getElementById("txt").attachEvent("onclick",function(event) {alert(event.keyCode);});
事件綁定的封裝函數:
這樣的封裝函數如果綁定事件fn函數裡面用到this 需提防 this 為window(只有IE低版本有這個bug) 不是obj;
綁定之取消事件 fn為函數名字
5.ajax
Ajax創建XMLHttp對象 標准版浏覽器與IE低版本不兼容
標准版創建XMLHttp對象:
6.取消默認事件
js中默認事件取消是主要是兩種 return false 和 preventDefault
取消默認事件中return false 是兼容任何浏覽器 但是如果遇到事件綁定的 addEventListener 會取消不掉默認事件
取消默認右鍵事件例子:
7.call與apply 的區別
call、apply 可以調用函數
例如
call(this,arg1,arg2,...)可以看出call裡面的參數 this主要是指代事件對象 以後參數是函數中用到的參數
用call與apply來主要是修改this的,功能上和普通的函數沒有什麼太大的區別
apply(this,arguments) 主要是對參數不確定來使用
8、DOM取得子節點children和childNodes
children 取得 子節點 只能是取第一層 必須是標簽節點
例如:
children[0] 這樣只能是取到第一個span 要是想取到第一個a標簽 children[0].children[0],所以說children的長度只是2;
childNodes在高版本上會算上空文本 在火狐 谷歌上 上面的是長度是5;在IE低版本(6-8)長度是4.