亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

原生javascript兼容性測試實例

2019-11-20 22:35:23
字體:
來源:轉載
供稿:網友
1.獲取樣式表里面的width,border color 之類的css(不是行間) 主要是IE6-7支持currentStyle,標準瀏覽器支持getComputedStyle;

實例:封裝函數
復制代碼 代碼如下:

function getStyle(obj,name){
if(obj.currentStyle){
return obj.currentStyle[name];
}
else{
return getComputedStyle(obj,false)[name];
}
}

調用:getStyle('color');

2.獲取滾動的距離
document.body.scrollTop 適用于 標準瀏覽器
document.documentElement.scrollTop 適用于IE9以下版本
兼容性可以這樣寫
var top = document.body.scrollTop | document.documentElement.scrollTop;

3.事件對象
標準瀏覽器:事件對象作為事件函數的參數
IE低版本 需要直接用event對象(全局)
復制代碼 代碼如下:

function (ev){
var event = ev || 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);});

事件綁定的封裝函數:
復制代碼 代碼如下:

function addEvent(obj,ev,fn){
if(obj.attachEvent){
obj.attachEvent('on'+ev,fn)
}
else{
obj.addEventListener(ev, fn, false);

}
}

這樣的封裝函數如果綁定事件fn函數里面用到this 需提防 this 為window(只有IE低版本有這個bug) 不是obj;
復制代碼 代碼如下:

addEvent(document,'click',function(ev){

var ev=ev||window.event;
var target = ev.target||ev.srcElement; // 獲得事件源 主要處理IE低版本this為window之bug
alert(target)
});

綁定之取消事件 fn為函數名字
復制代碼 代碼如下:

function removeEvent(obj,ev,fn){
if(obj.detachEvent){
obj.detachEvent('on'+ev,fn)
}
else{
obj.removeEventListener(ev, fn, false);

}
}

5.ajax
Ajax創建XMLHttp對象 標準版瀏覽器與IE低版本不兼容
標準版創建XMLHttp對象:
復制代碼 代碼如下:

//1.創建對象
if(window.XMLHttpRequest)
{
var oAjax=new XMLHttpRequest();//標準瀏覽器
}
else
{
var oAjax=new ActiveXObject("Microsoft.XMLHTTP");//IE低版本
}
alert(oAjax);

6.取消默認事件
js中默認事件取消是主要是兩種 return false 和 preventDefault
取消默認事件中return false 是兼容任何瀏覽器 但是如果遇到事件綁定的 addEventListener 會取消不掉默認事件
取消默認右鍵事件例子:
復制代碼 代碼如下:

document.addEventListener('contextmenu',function(ev){
ev.preventDefault();
}))
document.oncontextmenu = function(){
return false;
}

7.call與apply 的區別
call、apply 可以調用函數
例如
復制代碼 代碼如下:

function show(){
alert(this)
}
//show(); 彈出window
//show.call();彈出windwo
//show.call(this) //彈出window
//show.call(5); //彈出5;
show.call(this,5); //彈出window

call(this,arg1,arg2,...)可以看出call里面的參數 this主要是指代事件對象 以后參數是函數中用到的參數
用call與apply來主要是修改this的,功能上和普通的函數沒有什么太大的區別
apply(this,arguments) 主要是對參數不確定來使用
8、DOM取得子節點children和childNodes
children 取得 子節點 只能是取第一層 必須是標簽節點
例如:
復制代碼 代碼如下:

<span><a href="#">文字1</a></span>
<span><a href="#">文字2</a></span>

children[0] 這樣只能是取到第一個span 要是想取到第一個a標簽 children[0].children[0],所以說children的長度只是2;
childNodes在高版本上會算上空文本 在火狐 谷歌上 上面的是長度是5;在IE低版本(6-8)長度是4.
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕精品久久久久| 日韩av免费观影| 欧美一级黄色网| 欧美成aaa人片免费看| 午夜免费久久久久| 国产精品一区二区性色av| 国语自产精品视频在线看| 亚洲片在线资源| 欧美在线视频a| 中文日韩电影网站| 亚洲级视频在线观看免费1级| 韩国19禁主播vip福利视频| 久久激情五月丁香伊人| 亚洲男人天堂2019| 久久精品视频中文字幕| 国产伦精品一区二区三区精品视频| 91在线免费网站| 国产精品亚洲自拍| 91精品国产高清久久久久久| 欧美激情综合色综合啪啪五月| 日韩电视剧免费观看网站| 国产日韩在线视频| 国产a级全部精品| 亚洲片国产一区一级在线观看| 欧美成人自拍视频| 亚洲91精品在线观看| 性亚洲最疯狂xxxx高清| 中文字幕在线观看亚洲| 96精品久久久久中文字幕| 欧美日韩中国免费专区在线看| 国产精品美女免费| 91日本视频在线| 国产不卡精品视男人的天堂| 一区二区三区在线播放欧美| 久久精品视频在线播放| 午夜欧美不卡精品aaaaa| 狠狠色噜噜狠狠狠狠97| 在线观看国产精品91| 国内精品久久久久久中文字幕| 国产99久久精品一区二区永久免费| 久久精品夜夜夜夜夜久久| 国产精品7m视频| 精品国产福利在线| 日韩欧美成人网| 成人久久一区二区| 成人美女av在线直播| 国产精品白嫩美女在线观看| 国产极品精品在线观看| 日韩精品欧美激情| 国内精品小视频在线观看| 国产亚洲精品综合一区91| 视频直播国产精品| 国产一区二区日韩| 国产一区二区三区网站| 国内外成人免费激情在线视频| 亚洲护士老师的毛茸茸最新章节| 精品久久久久久久久久ntr影视| 成人高h视频在线| 欧美成aaa人片免费看| www.亚洲一区| 国内精品久久久久久影视8| 亚洲成人免费在线视频| 亚洲人成在线免费观看| 性色av香蕉一区二区| 91免费视频国产| 最近2019中文字幕大全第二页| 亚洲精品成人网| 欧美激情亚洲综合一区| 日韩毛片中文字幕| 亚洲第一视频网| 亚洲偷欧美偷国内偷| 国产精品久久久久不卡| 国产免费一区二区三区香蕉精| 成人激情春色网| 久久久久久九九九| 亚洲91精品在线观看| 色妞色视频一区二区三区四区| 亚洲级视频在线观看免费1级| 精品久久香蕉国产线看观看亚洲| 91香蕉亚洲精品| 两个人的视频www国产精品| 国产亚洲精品一区二区| 久久成人亚洲精品| 中文字幕av日韩| 欧美日韩中国免费专区在线看| 日韩精品免费综合视频在线播放| 亚洲跨种族黑人xxx| 色综合久久精品亚洲国产| 91精品在线一区| 在线视频亚洲欧美| 欧美床上激情在线观看| 久久精品成人一区二区三区| 国产精品一区久久久| 韩国精品美女www爽爽爽视频| 一区二区三欧美| 亚洲天堂av综合网| 亚洲精品国产精品国自产观看浪潮| 91香蕉嫩草神马影院在线观看| 国产精品视频久久久久| 国产精品午夜视频| 日韩毛片在线观看| 亚洲欧美激情在线视频| 日韩高清有码在线| 久久久亚洲成人| 久久久久亚洲精品成人网小说| 午夜精品美女自拍福到在线| 亚洲性生活视频在线观看| 日韩成人中文电影| 777777777亚洲妇女| 欧美日韩ab片| 欧美黑人国产人伦爽爽爽| 国产亚洲人成网站在线观看| 久久99久久99精品免观看粉嫩| 日日骚久久av| 国产欧美一区二区| 性欧美视频videos6一9| 中文国产成人精品| 亚洲视频综合网| 午夜精品久久久久久久99黑人| 久久精品电影一区二区| 日韩视频免费中文字幕| 国产精品扒开腿做爽爽爽的视频| 中文字幕在线观看日韩| 欧美精品18videos性欧| 亚洲国产欧美一区二区三区久久| 成人亚洲欧美一区二区三区| 蜜臀久久99精品久久久久久宅男| 亚洲欧美日韩久久久久久| 欧美天天综合色影久久精品| 日韩电影在线观看中文字幕| 亚洲人精品午夜在线观看| 亚洲精品欧美日韩专区| 色综合久久久久久中文网| 免费91麻豆精品国产自产在线观看| 亚洲天堂av电影| 亚洲第一区在线观看| 欧美专区国产专区| 精品成人乱色一区二区| 欧美激情亚洲激情| 亚洲已满18点击进入在线看片| 久久91亚洲人成电影网站| 久久69精品久久久久久国产越南| 成人黄色影片在线| 久久久这里只有精品视频| 日韩免费观看在线观看| 国产一区二中文字幕在线看| 欧美日韩在线另类| 欧美性xxxxxxx| 国产精品69精品一区二区三区| 日韩精品免费电影| 国产精品福利在线观看网址| 亚洲免费视频一区二区| 欧美午夜性色大片在线观看| 亚洲japanese制服美女| 日韩欧美国产高清91| 欧美日韩精品国产| 国产精品a久久久久久| 成人午夜两性视频| 亚洲码在线观看| 欧美激情2020午夜免费观看| 亚洲精品久久久久| 日韩精品极品在线观看| 日韩中文字幕在线看| 久久99视频免费|