OSDN Git Service

Fix the bug of X.NodeAnime.
[pettanr/clientJs.git] / 0.6.x / js / 03_plugin / 00_XPlugin.js
1
2 /*
3  * Flash Player 10 バージョン判別チェックリスト
4  * http://www.adobe.com/jp/devnet/flashplayer/articles/ver_check_flp10.html
5  * 
6  * IE7でswfobjectが動作しない件
7  * https://web.archive.org/web/20130317163030/http://mtl.recruit.co.jp/blog/2008/02/ie7swfobject.html
8  * 
9  * flash player 10, ie6+, ff2+, safari3, opera9.5
10  * flash player 11, ie7+, ff4(?), safari5, opera11
11  * flash player 12, ie8+, ff17, opera11
12  * 
13  * http://helpx.adobe.com/jp/flash-player/kb/228683.html
14  * flash player  9, Mac 10.1-10.3, 98, ME
15  * flash player 10.1, Mac 10.4
16  * flash player 10.3, Mac 10.5
17  * flash player 11.1, Win2k, Android 2.x-4.x
18  */
19 var X_Plugin_FLASH_VERSION =
20                 !X_UA[ 'IE' ] || !X_UA[ 'ActiveX' ] ? parseFloat( X_Object_find( navigator, 'plugins>Shockwave Flash>version' ) || 0 ) :
21                 !X_UA[ 'IE4' ] && !X_UA[ 'IE5' ] && X_UA[ 'ActiveX' ] ? (function(){
22                             var obj = X_Script_createActiveXObjectSafty( 'ShockwaveFlash.ShockwaveFlash' );
23                             
24                                 return parseFloat( obj && obj[ 'GetVariable' ]( '$version' ).split( 'WIN ' )[ 1 ] ) || 0;
25                         })() :
26                         0,
27
28         X_Plugin_SILVER_LIGHT_VERSION = 
29                 !X_UA[ 'IE' ] || !X_UA[ 'ActiveX' ] ? parseFloat( X_Object_find( navigator, 'plugins>Silverlight Plug-In>version' ) || 0 ) :
30                 X_UA[ 'ActiveX' ] && 6 <= X_UA[ 'IE' ] ? (function(){
31                             var obj = X_Script_createActiveXObjectSafty( 'AgControl.AgControl' ),
32                                 i = obj ? 5 : 0;
33
34                             for( ; i; --i ){
35                                 if( obj[ 'IsVersionSupported' ]( i + '.0' ) ) return i;
36                             };
37                             return 0;
38                         })() :
39                         0,
40
41 //http://docs.unity3d.ru/Manual/Detecting%20the%20Unity%20Web%20Player%20using%20browser%20scripting.html
42         X_Plugin_UNITY_VERSION =        
43                 !X_UA[ 'IE' ] || !X_UA[ 'ActiveX' ] ?
44                         parseFloat( X_Object_find( navigator, 'plugins>Unity Player>version' ) || 0 ) :
45                 !X_UA[ 'IE4' ] && !X_UA[ 'IE5' ] && X_UA[ 'ActiveX' ] ? (function(){
46                             var obj = X_Script_createActiveXObjectSafty( 'UnityWebPlayer.UnityWebPlayer.1' );
47
48                             return obj ? parseFloat( obj[ 'GetPluginVersion' ]() ) : 0;
49                         })() :
50                         0,
51
52         X_Plugin_GEARS_ENABLED =
53                 window.GearsFactory ||
54                 ( X_UA[ 'ActiveX' ] && 6 <= X_UA[ 'IE' ] ?
55                         (function(){
56                             return X_Script_createActiveXObjectSafty( 'Gears.Factory' );
57                         })() :
58                         X_Object_find( navigator, 'mimeTypes>application/x-googlegears>enabledPlugin' )
59                 ),
60
61 // https://support.microsoft.com/ja-jp/kb/279022
62 // Windows Media Player 7 がクライアントにインストールされている場合に、自動的に Web ページに埋め込む方法
63 // TODO GeckoActiveXObject
64         X_Plugin_WMP_VERSION =  
65                 !X_UA[ 'IE' ] || !X_UA[ 'ActiveX' ] ? 0 :
66                 (function(){
67                             var obj = X_Script_createActiveXObjectSafty( 'WMPlayer.OCX.7' );
68
69                             return obj ? parseFloat( obj[ 'versionInfo' ] ) :
70                                 X_Script_createActiveXObjectSafty( '{22D6F312-B0F6-11D0-94AB-0080C74C7E95}' ) ? 6.4 : 0;
71                         })();
72
73         // QuickTime Plug-in 7.7.6
74         /*
75         X_Plugin_QUICKTIME_VERSION =
76                         !X_UA[ 'IE' ] || !X_UA[ 'ActiveX' ] ? (function( plugins, k ){
77                                 for( k in plugins ){
78                                         if( k.indexOf( 'QuickTime' ) === 0 ) return parseFloat( k.substr( 18 ) ) || 0;
79                                 };
80                                 return 0;
81                         })( navigator.plugins ) :
82                         !X_UA[ 'IE4' ] && !X_UA[ 'IE5' ] && X_UA[ 'ActiveX' ] ? (function(){
83                                     var obj = QuickTimeCheckObject.QuickTimeCheck.1' ),
84                                         ver = obj && obj[ 'QuickTimeVersion' ].toString( 16 );
85
86                                         return ver ? parseFloat( ver.substr( 0, 3 ) ) / 100 : 0;
87                                 })() :
88                                 0, */
89
90 /**
91  * @namespace X.Plugin
92  */
93 X[ 'Plugin' ] = {
94         
95         'Flash'       : X_Plugin_FLASH_VERSION,
96
97         // FlashLite
98
99         'Silverlight' : X_Plugin_SILVER_LIGHT_VERSION,
100         
101         'Unity'       : X_Plugin_UNITY_VERSION,
102         
103         //'QuickTime'          : X_Plugin_QUICKTIME_VERSION,
104         
105         'Gears'       : !!X_Plugin_GEARS_ENABLED,
106         
107         'WMP'         : X_Plugin_WMP_VERSION
108         
109 };
110
111 //if( X_Plugin_GEARS_ENABLED ) alert( 'X_Plugin_GEARS_ENABLED' );
112