फ्लैश स्थापित होने और अगर यह नहीं है, तो यह पता लगाने के लिए मैं जावास्क्रिप्ट / jQuery / आदि का उपयोग कैसे कर सकता हूं, एक डिव प्रदर्शित करें जिसमें उपयोगकर्ता को सूचित करने वाली जानकारी है कि उन्हें फ्लैश स्थापित करने की आवश्यकता है?
फ्लैश स्थापित होने और अगर यह नहीं है, तो यह पता लगाने के लिए मैं जावास्क्रिप्ट / jQuery / आदि का उपयोग कैसे कर सकता हूं, एक डिव प्रदर्शित करें जिसमें उपयोगकर्ता को सूचित करने वाली जानकारी है कि उन्हें फ्लैश स्थापित करने की आवश्यकता है?
जवाबों:
Swfobject का उपयोग करें। यदि यह स्थापित है, तो यह फ़्लैश के साथ एक div को प्रतिस्थापित करता है। देखें: http://code.google.com/p/swfobject/
यदि swfobject
आप पर्याप्त नहीं होंगे, या आपको कुछ और बनाने की आवश्यकता होगी, तो यह प्रयास करें:
var hasFlash = false;
try {
hasFlash = Boolean(new ActiveXObject('ShockwaveFlash.ShockwaveFlash'));
} catch(exception) {
hasFlash = ('undefined' != typeof navigator.mimeTypes['application/x-shockwave-flash']);
}
यह 7 और 8 के साथ काम करता है।
@ ड्रूयड का जवाब मेरे फ़ायरफ़ॉक्स २५ में काम नहीं आया अगर फ्लैश प्लगइन सिर्फ निष्क्रिय है लेकिन स्थापित है
@ उस उत्तर में उलटी टिप्पणी ने फ़ायरफ़ॉक्स में काम किया लेकिन किसी भी IE संस्करण में नहीं।
इसलिए दोनों को अपने कोड को मिला दिया और यह प्राप्त किया। Google Chrome 31, Firefox 25, IE 8-10 में परीक्षण किया गया। धन्यवाद आकर्षित और उलटा :)
var hasFlash = false;
try {
var fo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
if (fo) {
hasFlash = true;
}
} catch (e) {
if (navigator.mimeTypes
&& navigator.mimeTypes['application/x-shockwave-flash'] != undefined
&& navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin) {
hasFlash = true;
}
}
jqplugin: http://code.google.com/p/jqplugin/
$.browser.flash == true
आप भी उपयोग करने में सक्षम होना चाहिए ..
swfobject.getFlashPlayerVersion().major === 0
साथ swfObject-प्लगइन ।
swfobject
अपरिभाषित है।
मैंने एडोब की डिटेक्शन किट का इस्तेमाल किया, मूल रूप से जस्टपासिनबी ने सुझाव दिया। उनका सिस्टम अच्छा है क्योंकि यह संस्करण संख्या का पता लगाता है और आपके लिए आपके 'आवश्यक संस्करण' की तुलना करता है
एक बुरी बात यह है कि यह फ्लैश के पता किए गए संस्करण को दर्शाने वाला एक अलर्ट है, जो बहुत उपयोगकर्ता के अनुकूल नहीं है। अचानक एक बॉक्स कुछ प्रतीत होता है यादृच्छिक संख्या के साथ पॉप अप।
कुछ संशोधनों पर विचार करना चाहते हैं:
Http://www.featureblend.com/javascript-flash-detection-library.html (केवल बूलियन फ्लैश डिटेक्शन) का बहुत ही छोटा संस्करण
var isFlashInstalled = (function(){
var b=new function(){var n=this;n.c=!1;var a="ShockwaveFlash.ShockwaveFlash",r=[{name:a+".7",version:function(n){return e(n)}},{name:a+".6",version:function(n){var a="6,0,21";try{n.AllowScriptAccess="always",a=e(n)}catch(r){}return a}},{name:a,version:function(n){return e(n)}}],e=function(n){var a=-1;try{a=n.GetVariable("$version")}catch(r){}return a},i=function(n){var a=-1;try{a=new ActiveXObject(n)}catch(r){a={activeXError:!0}}return a};n.b=function(){if(navigator.plugins&&navigator.plugins.length>0){var a="application/x-shockwave-flash",e=navigator.mimeTypes;e&&e[a]&&e[a].enabledPlugin&&e[a].enabledPlugin.description&&(n.c=!0)}else if(-1==navigator.appVersion.indexOf("Mac")&&window.execScript)for(var t=-1,c=0;c<r.length&&-1==t;c++){var o=i(r[c].name);o.activeXError||(n.c=!0)}}()};
return b.c;
})();
if(isFlashInstalled){
// Do something with flash
}else{
// Don't use flash
}