X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=0.6.x%2Fjs%2F03_plugin%2F00_XPlugin.js;h=ffcdedc249c044987e6a86a52f7efe3edd8fbb0d;hb=3c07e12e13272820cedf983e0d9fe46e5f0a4bd9;hp=f3868f8e5d0f60925224f065ba10cd47777f44a0;hpb=4afbf1b687e035eaf2c6b8bbf14e3c443d843d4e;p=pettanr%2FclientJs.git diff --git a/0.6.x/js/03_plugin/00_XPlugin.js b/0.6.x/js/03_plugin/00_XPlugin.js index f3868f8..ffcdedc 100644 --- a/0.6.x/js/03_plugin/00_XPlugin.js +++ b/0.6.x/js/03_plugin/00_XPlugin.js @@ -17,82 +17,100 @@ * flash player 11.1, Win2k, Android 2.x-4.x */ var X_Pulgin_FLASH_VERSION = - !X_UA.IE && navigator.plugins[ 'Shockwave Flash' ] ? - parseFloat( navigator.plugins[ 'Shockwave Flash' ].version ) : - !X_UA.IE4 && !X_UA.IE5 && X_UA.ActiveX ? (function(){ - var obj = eval( 'var a,e;try{a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash")}catch(e){}a' ), - ver = obj && obj.GetVariable( '$version' ).split( ' ' ).join( '.' ); - return parseFloat( ver ) || 0; + !X_UA[ 'IE' ] || !X_UA[ 'ActiveX' ] ? parseFloat( X_Object_find( navigator, 'plugins>Shockwave Flash>version' ) || 0 ) : + !X_UA[ 'IE4' ] && !X_UA[ 'IE5' ] && X_UA[ 'ActiveX' ] ? (function(){ + var obj = X_Script_createActiveXObjectSafty( 'ShockwaveFlash.ShockwaveFlash' ); + + return parseFloat( obj && obj[ 'GetVariable' ]( '$version' ).split( 'WIN ' )[ 1 ] ) || 0; })() : 0, - X_Pulgin_FLASH_ENABLED = - X_UA.ActiveX ? !!X_Pulgin_FLASH_VERSION : - navigator.mimeTypes && - navigator.mimeTypes[ 'application/x-shockwave-flash' ] && - navigator.mimeTypes[ 'application/x-shockwave-flash' ].enabledPlugin, - /* - * ie11 の 互換モード(8,7)では、Silverlight が動作しない? + * ie11 の 互換モード(8,7)では、Silverlight が動作しない? */ X_Pulgin_SILVER_LIGHT_VERSION = - !X_UA.IE && navigator.plugins[ 'Silverlight Plug-In' ] ? - parseFloat( navigator.plugins[ 'Silverlight Plug-In' ].version ) : - X_UA.ActiveX && 6 <= X_UA.IE && !X_UA.IECompat ? (function(){ - return eval( 'var a,i=0;try{a=new ActiveXObject("AgControl.AgControl");for(i=5;i;--i)if(a.IsVersionSupported(i+".0"))break;}catch(e){i=0}i' ); + !X_UA[ 'IE' ] || !X_UA[ 'ActiveX' ] ? parseFloat( X_Object_find( navigator, 'plugins>Silverlight Plug-In>version' ) || 0 ) : + X_UA[ 'ActiveX' ] && 6 <= X_UA[ 'IE' ] ? (function(){ + var obj = X_Script_createActiveXObjectSafty( 'AgControl.AgControl' ), + i = obj ? 5 : 0; + + for( ; i; --i ){ + if( obj[ 'IsVersionSupported' ]( i + '.0' ) ) return i; + }; + return 0; })() : 0, - X_Pulgin_SILVER_LIGHT_ENABLED = - X_UA.ActiveX ? !!X_Pulgin_SILVER_LIGHT_VERSION : - navigator.mimeTypes && - navigator.mimeTypes[ 'application/x-silverlight' ] && - navigator.mimeTypes[ 'application/x-silverlight' ].enabledPlugin, - //http://docs.unity3d.ru/Manual/Detecting%20the%20Unity%20Web%20Player%20using%20browser%20scripting.html X_Pulgin_UNITY_VERSION = - !X_UA.IE && navigator.plugins[ 'Unity Player' ] ? - parseFloat( navigator.plugins[ 'Unity Player' ].version ) : - !X_UA.IE4 && !X_UA.IE5 && X_UA.ActiveX ? (function(){ - var obj = eval( 'var a,e;try{a=new ActiveXObject("UnityWebPlayer.UnityWebPlayer.1")}catch(e){}a' ); - return obj ? parseFloat( obj.GetPluginVersion() ) : 0; + !X_UA[ 'IE' ] || !X_UA[ 'ActiveX' ] ? + parseFloat( X_Object_find( navigator, 'plugins>Unity Player>version' ) || 0 ) : + !X_UA[ 'IE4' ] && !X_UA[ 'IE5' ] && X_UA[ 'ActiveX' ] ? (function(){ + var obj = X_Script_createActiveXObjectSafty( 'UnityWebPlayer.UnityWebPlayer.1' ); + + //console.log( obj && obj[ 'GetPluginVersion' ]() ); + return obj ? parseFloat( obj[ 'GetPluginVersion' ]() ) : 0; })() : 0, - X_Pulgin_UNITY_ENABLED = - X_UA.ActiveX ? !!X_Pulgin_UNITY_VERSION : - navigator.mimeTypes && - navigator.mimeTypes[ 'application/vnd.unity' ] && - navigator.mimeTypes[ 'application/vnd.unity' ].enabledPlugin, - X_Pulgin_GEARS_ENABLED = window.GearsFactory || - ( X_UA.ActiveX && 6 <= X_UA.IE ? + ( X_UA[ 'ActiveX' ] && 6 <= X_UA[ 'IE' ] ? (function(){ - return eval( 'var a,e;try{a=new ActiveXObject("Gears.Factory")}catch(e){}!!a' ); + return X_Script_createActiveXObjectSafty( 'Gears.Factory' ); })() : - navigator.mimeTypes && - navigator.mimeTypes[ 'application/x-googlegears' ] && - navigator.mimeTypes[ 'application/x-googlegears' ].enabledPlugin - ); + X_Object_find( navigator, 'mimeTypes>application/x-googlegears>enabledPlugin' ) + ), + +// https://support.microsoft.com/ja-jp/kb/279022 +// Windows Media Player 7 がクライアントにインストールされている場合に、自動的に Web ページに埋め込む方法 +// TODO GeckoActiveXObject + X_Pulgin_WMP_VERSION = + !X_UA[ 'IE' ] || !X_UA[ 'ActiveX' ] ? parseFloat( X_Object_find( navigator, 'plugins>Windows Media Player Plug-in Dynamic Link Library>version' ) || 0 ) : + (function(){ + var obj = X_Script_createActiveXObjectSafty( 'WMPlayer.OCX.7' ); -X.Pulgin = { + return obj ? parseFloat( obj[ 'versionInfo' ] ) : + X_Script_createActiveXObjectSafty( '{22D6F312-B0F6-11D0-94AB-0080C74C7E95}' ) ? 6.4 : 0; + })(); + + // QuickTime Plug-in 7.7.6 + /* + X_Pulgin_QUICKTIME_VERSION = + !X_UA[ 'IE' ] || !X_UA[ 'ActiveX' ] ? (function( plugins, k ){ + for( k in plugins ){ + if( k.indexOf( 'QuickTime' ) === 0 ) return parseFloat( k.substr( 18 ) ) || 0; + }; + return 0; + })( navigator.plugins ) : + !X_UA[ 'IE4' ] && !X_UA[ 'IE5' ] && X_UA[ 'ActiveX' ] ? (function(){ + var obj = QuickTimeCheckObject.QuickTimeCheck.1' ), + ver = obj && obj[ 'QuickTimeVersion' ].toString( 16 ); + + return ver ? parseFloat( ver.substr( 0, 3 ) ) / 100 : 0; + })() : + 0, */ + +/** + * @namespace X.Pulgin + */ +X[ 'Pulgin' ] = { - Flash : X_Pulgin_FLASH_VERSION, + 'Flash' : X_Pulgin_FLASH_VERSION, - FlashEnabled : !!X_Pulgin_FLASH_ENABLED, + // FlashLite - Silverlight : X_Pulgin_SILVER_LIGHT_VERSION, + 'Silverlight' : X_Pulgin_SILVER_LIGHT_VERSION, - SilverlightEnabled : !!X_Pulgin_SILVER_LIGHT_ENABLED, + 'Unity' : X_Pulgin_UNITY_VERSION, - Unity : X_Pulgin_UNITY_VERSION, + //'QuickTime' : X_Pulgin_QUICKTIME_VERSION, - UnityEnabled : !!X_Pulgin_UNITY_ENABLED, + 'Gears' : !!X_Pulgin_GEARS_ENABLED, - GearsEnabled : X_Pulgin_GEARS_ENABLED + 'WMP' : X_Pulgin_WMP_VERSION }; -if( X_Pulgin_GEARS_ENABLED ) alert( 'X_Pulgin_GEARS_ENABLED' ); +//if( X_Pulgin_GEARS_ENABLED ) alert( 'X_Pulgin_GEARS_ENABLED' );