1 | <!---
|
---|
2 | * FCKeditor - The text editor for Internet - http://www.fckeditor.net
|
---|
3 | * Copyright (C) 2003-2009 Frederico Caldeira Knabben
|
---|
4 | *
|
---|
5 | * == BEGIN LICENSE ==
|
---|
6 | *
|
---|
7 | * Licensed under the terms of any of the following licenses at your
|
---|
8 | * choice:
|
---|
9 | *
|
---|
10 | * - GNU General Public License Version 2 or later (the "GPL")
|
---|
11 | * http://www.gnu.org/licenses/gpl.html
|
---|
12 | *
|
---|
13 | * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
|
---|
14 | * http://www.gnu.org/licenses/lgpl.html
|
---|
15 | *
|
---|
16 | * - Mozilla Public License Version 1.1 or later (the "MPL")
|
---|
17 | * http://www.mozilla.org/MPL/MPL-1.1.html
|
---|
18 | *
|
---|
19 | * == END LICENSE ==
|
---|
20 | *
|
---|
21 | * ColdFusion integration.
|
---|
22 | * This function is used by FCKeditor module to check browser compatibility
|
---|
23 | --->
|
---|
24 | <cfscript>
|
---|
25 | function FCKeditor_IsCompatibleBrowser()
|
---|
26 | {
|
---|
27 | sAgent = lCase( cgi.HTTP_USER_AGENT );
|
---|
28 | isCompatibleBrowser = false;
|
---|
29 |
|
---|
30 | // check for Internet Explorer ( >= 5.5 )
|
---|
31 | if( find( "msie", sAgent ) and not find( "mac", sAgent ) and not find( "opera", sAgent ) )
|
---|
32 | {
|
---|
33 | // try to extract IE version
|
---|
34 | stResult = reFind( "msie ([5-9]\.[0-9])", sAgent, 1, true );
|
---|
35 | if( arrayLen( stResult.pos ) eq 2 )
|
---|
36 | {
|
---|
37 | // get IE Version
|
---|
38 | sBrowserVersion = mid( sAgent, stResult.pos[2], stResult.len[2] );
|
---|
39 | if( sBrowserVersion GTE 5.5 )
|
---|
40 | isCompatibleBrowser = true;
|
---|
41 | }
|
---|
42 | }
|
---|
43 | // check for Gecko ( >= 20030210+ )
|
---|
44 | else if( find( "gecko/", sAgent ) )
|
---|
45 | {
|
---|
46 | // try to extract Gecko version date
|
---|
47 | stResult = reFind( "gecko/(200[3-9][0-1][0-9][0-3][0-9])", sAgent, 1, true );
|
---|
48 | if( arrayLen( stResult.pos ) eq 2 )
|
---|
49 | {
|
---|
50 | // get Gecko build (i18n date)
|
---|
51 | sBrowserVersion = mid( sAgent, stResult.pos[2], stResult.len[2] );
|
---|
52 | if( sBrowserVersion GTE 20030210 )
|
---|
53 | isCompatibleBrowser = true;
|
---|
54 | }
|
---|
55 | }
|
---|
56 | else if( find( "opera/", sAgent ) )
|
---|
57 | {
|
---|
58 | // try to extract Opera version
|
---|
59 | stResult = reFind( "opera/([0-9]+\.[0-9]+)", sAgent, 1, true );
|
---|
60 | if( arrayLen( stResult.pos ) eq 2 )
|
---|
61 | {
|
---|
62 | if ( mid( sAgent, stResult.pos[2], stResult.len[2] ) gte 9.5)
|
---|
63 | isCompatibleBrowser = true;
|
---|
64 | }
|
---|
65 | }
|
---|
66 | else if( find( "applewebkit", sAgent ) )
|
---|
67 | {
|
---|
68 | // try to extract Gecko version date
|
---|
69 | stResult = reFind( "applewebkit/([0-9]+)", sAgent, 1, true );
|
---|
70 | if( arrayLen( stResult.pos ) eq 2 )
|
---|
71 | {
|
---|
72 | if( mid( sAgent, stResult.pos[2], stResult.len[2] ) gte 522 )
|
---|
73 | isCompatibleBrowser = true;
|
---|
74 | }
|
---|
75 | }
|
---|
76 | return isCompatibleBrowser;
|
---|
77 | }
|
---|
78 | </cfscript>
|
---|