source: trunk/jabberit_messenger/jmessenger/js/SnifferBrowser.js @ 4405

Revision 4405, 4.1 KB checked in by niltonneto, 13 years ago (diff)

Ticket #1873 - liberado o uso do firefox no array de browsers compativeis

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                // Chrome       
54                ['chrome8', ( agt.indexOf('chrome/8') != -1 ) ],
55               
56                // EPIPHANY     
57                ['epiphany2', ( agt.indexOf('epiphany/2') != -1 ) ],
58       
59                // FIREFOX
60                        ['firefox1', ( agt.indexOf('firefox/1') != -1 ) ],
61                        ['firefox2', ( agt.indexOf('firefox/2') != -1 ) ],
62                        ['firefox3', ( agt.indexOf('firefox/3') != -1 ) ],
63                        ['firefox3', ( agt.indexOf('firefox/4') != -1 ) ],
64       
65                        // ICEWEASEL
66                        ['iceweasel3', (agt.indexOf('iceweasel/3') != -1 ) ],
67               
68                        // IE
69                        ['ie3', (((iePos!=-1) && (!is_opera) && (!is_khtml)) && (is_major < 4 )) ],
70                        ['ie4', (((iePos!=-1) && (!is_opera) && (!is_khtml)) && (is_major == 4 )) ],
71                        ['ie5', (((iePos!=-1) && (!is_opera) && (!is_khtml)) && (is_major == 5 )) ],
72                        ['ie55', (((iePos!=-1) && (!is_opera) && (!is_khtml)) && (agt.indexOf("msie 5.5") !=-1 )) ],
73                        ['ie6', (((iePos!=-1) && (!is_opera) && (!is_khtml)) && (is_major == 6 )) ],
74                        ['ie7', (((iePos!=-1) && (!is_opera) && (!is_khtml)) && (is_major == 7 )) ],
75                        ['ie8', (((iePos!=-1) && (!is_opera) && (!is_khtml)) && (is_major == 8 )) ],
76
77                        //IS?
78                        ['is_ie', ((iePos!=-1) && (!is_opera) && (!is_khtml)) ],
79                        ['is_gecko', is_gecko ],
80                        ['is_opera', is_opera ],
81                        ['is_khtml', is_khtml ],
82                        ['is_moz', is_moz ],
83                       
84                        // OPERA
85                        ['is_opera', is_opera],
86                        ['opera2', ( agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1) ],
87                        ['opera3', ( agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1) ],
88                        ['opera4', ( agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1) ],
89                        ['opera5', ( agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1) ],
90                        ['opera6', ( agt.indexOf("opera 6") != -1 || agt.indexOf("opera/6") != -1) ],
91                        ['opera7', ( agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1) ],
92                        ['opera8', ( agt.indexOf("opera 8") != -1 || agt.indexOf("opera/8") != -1) ],
93                        ['opera9', ( agt.indexOf("opera 9") != -1 || agt.indexOf("opera/9") != -1) ],
94   
95                        // IS SAFARI/KHTML
96                        ['safari', ((agt.indexOf('safari')!=-1) && (agt.indexOf('mac')!=-1)) ],
97                        ['khtml', is_khtml ]
98        ];
99       
100    function isCompatible()
101    {
102        if( arguments.length > 0 )
103        {
104                var _args = arguments;
105               
106                for( i = 0; i < _args.length; i++ )
107                {
108                        for( j = 0; j < _browser.length; j++ )
109                        {
110                                if( _args[i].toLowerCase() === _browser[j][0] )
111                                {
112                                        if( _browser[j][1] )
113                                                return true;
114                                }
115                        }       
116                }
117               
118                return false;
119        }
120    }
121   
122        function SnifferBrowser()
123        {
124        }
125
126        SnifferBrowser.prototype.isCompatible = isCompatible;
127       
128        window.SnifferBrowser = new SnifferBrowser;
129       
130})();
Note: See TracBrowser for help on using the repository browser.