原生JS通过ClassName(getElementsByClassName)兼容IE8写法

 1 /*
 2  by dg
 3  Time 2017/10/23
 4  * */
 5 /*通过class定位对象 v1.0.0
 6  * 最佳兼容类型 IE8+,IE6\IE7未测试,理论上可行
 7  * 
 8  classname:需要获取的className
 9  fun:在某个对象下查找(非必填)
10  
11  调用示例:
12 getElementsByClassName("classname1",document.getElementById("id"))
13 getElementsByClassName("classname2")
14  ***/
15 function getElementsByClassName(classname,fun){
16     if(isIE()!= "0.0"){
17         return bclassname(classname,fun);
18     }else{
19         return aclassname(classname,fun);
20     }
21 }
22 function aclassname(clsName, fun) {
23     var objParent = fun || document;
24     return objParent.getElementsByClassName(clsName);
25 }
26 function bclassname(clsName, fun) {
27     var objParent = fun || document;
28     var elements = objParent.getElementsByTagName("*");
29     var ele = [];
30     for(var i = 0; i < elements.length; i++) {
31         if(elements[i].className == clsName) {
32             ele.push(elements[i]);
33         }
34     }
35     return ele;
36 }
37 function isIE() {
38     var browser = navigator.appName
39     var b_version = navigator.appVersion
40     var version = b_version.split(";");
41     //var trim_Version = version[1].replace(/[ ]/g, "");
    

var trim_Version;
try{
trim_Version = version[1].replace(/[ ]/g, "");
}catch(e){
/*兼容火狐*/
trim_Version = navigator.userAgent.split(";")[1].replace(/[ ]/g, "");
}

42     if(browser == "Microsoft Internet Explorer" && trim_Version == "MSIE6.0") {
43         return "6.0";
44     } else if(browser == "Microsoft Internet Explorer" && trim_Version == "MSIE7.0") {
45         return "7.0";
46     } else if(browser == "Microsoft Internet Explorer" && trim_Version == "MSIE8.0") {
47         return "8.0";
48     }
49     if(navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.split(";")[1].replace(/[ ]/g, "") == "MSIE6.0") {
50         return "6.0";
51     } else if(navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.split(";")[1].replace(/[ ]/g, "") == "MSIE7.0") {
52         return "7.0";
53     } else if(navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.split(";")[1].replace(/[ ]/g, "") == "MSIE8.0") {
54         return "8.0";
55     }
56     if(navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.match(/7./i) == "7.") {
57         return "7.0";
58     } else if(navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.match(/8./i) == "8.") {
59         return "8.0";
60     }
61     return "0.0";
62 }

 

posted @ 2017-10-23 14:17  但高  阅读(1006)  评论(0编辑  收藏  举报