source: branches/2.2/jabberit_messenger/jmessenger/js/SnifferBrowser.js @ 3228

Revision 3228, 3.9 KB checked in by alexandrecorreia, 14 years ago (diff)

Ticket #941 - Correcao de layout e carregamento do javascript para IE8 no modulo IM.

Line 
1(function()
2{               
3        // NAVIGATOR USER AGENT
4        var agt                 = navigator.userAgent.toLowerCase();
5        var appVer              = navigator.appVersion.toLowerCase();
6
7        var is_minor    = parseFloat(appVer);
8        var is_major    = parseInt(is_minor);
9       
10        var iePos               = appVer.indexOf('msie');
11   
12        if ( iePos != -1 )
13    {
14       is_minor = parseFloat(appVer.substring(iePos+5,appVer.indexOf(';',iePos)));
15       is_major = parseInt(is_minor);
16    }
17
18    //Konqueror
19
20    var is_konq = false;
21    var kqPos   = agt.indexOf('konqueror');
22    if ( kqPos !=-1 )
23    {
24       is_konq  = true;
25       is_minor = parseFloat(agt.substring(kqPos+10,agt.indexOf(';',kqPos)));
26       is_major = parseInt(is_minor);
27    }
28       
29    //Is_Khtml
30    var is_khtml        = (((agt.indexOf('safari')!=-1) && (agt.indexOf('mac')!=-1)) && ( is_konq ));
31   
32    //Is_Opera
33    var is_opera        = (agt.indexOf("opera") != -1 );
34   
35    //Is_IE
36    var is_ie           = ((iePos!=-1) && (!is_opera) && (!is_khtml));
37   
38    // Gecko
39    var is_gecko = ((!is_khtml)&&(navigator.product)&&(navigator.product.toLowerCase()=="gecko"))?true:false;
40    var is_gver  = 0;
41    if (is_gecko)
42        is_gver = navigator.productSub;
43
44    // Moz
45    var is_moz   = ((agt.indexOf('mozilla/5')!=-1) && (agt.indexOf('spoofer')==-1) &&
46            (agt.indexOf('compatible')==-1) && (agt.indexOf('opera')==-1)  &&
47            (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)     &&
48            (is_gecko) &&
49            ((navigator.vendor=="")||(navigator.vendor=="Mozilla")));
50
51    var _browser = [
52       
53                // EPIPHANY     
54                ['epiphany2', ( agt.indexOf('epiphany/2') != -1 ) ],
55       
56                // FIREFOX
57                        ['firefox1', ( agt.indexOf('firefox/1') != -1 ) ],
58                        ['firefox2', ( agt.indexOf('firefox/2') != -1 ) ],
59                        ['firefox3', ( agt.indexOf('firefox/3') != -1 ) ],
60       
61                        // ICEWEASEL
62                        ['iceweasel3', (agt.indexOf('iceweasel/3') != -1 ) ],
63               
64                        // IE
65                        ['ie3', (((iePos!=-1) && (!is_opera) && (!is_khtml)) && (is_major < 4 )) ],
66                        ['ie4', (((iePos!=-1) && (!is_opera) && (!is_khtml)) && (is_major == 4 )) ],
67                        ['ie5', (((iePos!=-1) && (!is_opera) && (!is_khtml)) && (is_major == 5 )) ],
68                        ['ie55', (((iePos!=-1) && (!is_opera) && (!is_khtml)) && (agt.indexOf("msie 5.5") !=-1 )) ],
69                        ['ie6', (((iePos!=-1) && (!is_opera) && (!is_khtml)) && (is_major == 6 )) ],
70                        ['ie7', (((iePos!=-1) && (!is_opera) && (!is_khtml)) && (is_major == 7 )) ],
71                        ['ie8', (((iePos!=-1) && (!is_opera) && (!is_khtml)) && (is_major == 8 )) ],
72
73                        //IS?
74                        ['is_ie', ((iePos!=-1) && (!is_opera) && (!is_khtml)) ],
75                        ['is_gecko', is_gecko ],
76                        ['is_opera', is_opera ],
77                        ['is_khtml', is_khtml ],
78                        ['is_moz', is_moz ],
79                       
80                        // OPERA
81                        ['is_opera', is_opera],
82                        ['opera2', ( agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1) ],
83                        ['opera3', ( agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1) ],
84                        ['opera4', ( agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1) ],
85                        ['opera5', ( agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1) ],
86                        ['opera6', ( agt.indexOf("opera 6") != -1 || agt.indexOf("opera/6") != -1) ],
87                        ['opera7', ( agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1) ],
88                        ['opera8', ( agt.indexOf("opera 8") != -1 || agt.indexOf("opera/8") != -1) ],
89                        ['opera9', ( agt.indexOf("opera 9") != -1 || agt.indexOf("opera/9") != -1) ],
90   
91                        // IS SAFARI/KHTML
92                        ['safari', ((agt.indexOf('safari')!=-1) && (agt.indexOf('mac')!=-1)) ],
93                        ['khtml', is_khtml ]
94        ];
95       
96    function isCompatible()
97    {
98        if( arguments.length > 0 )
99        {
100                var _args = arguments;
101               
102                for( i = 0; i < _args.length; i++ )
103                {
104                        for( j = 0; j < _browser.length; j++ )
105                        {
106                                if( _args[i].toLowerCase() === _browser[j][0] )
107                                {
108                                        if( _browser[j][1] )
109                                                return true;
110                                }
111                        }       
112                }
113               
114                return false;
115        }
116    }
117   
118        function SnifferBrowser()
119        {
120        }
121
122        SnifferBrowser.prototype.isCompatible = isCompatible;
123       
124        window.SnifferBrowser = new SnifferBrowser;
125       
126})();
Note: See TracBrowser for help on using the repository browser.