কারও কাছে স্ক্রিপ্টের উদাহরণ রয়েছে যা ব্রাউজার এম্বেডড ফ্ল্যাশ সামগ্রী প্রদর্শন করতে সক্ষম কিনা তা সনাক্ত করতে আইই / ফায়ারফক্স জুড়ে নির্ভরযোগ্যভাবে ভাল কাজ করতে পারে। আমি নির্ভরযোগ্যভাবে বলি কারণ আমি জানি 100% সময় এটি সম্ভব নয়।
কারও কাছে স্ক্রিপ্টের উদাহরণ রয়েছে যা ব্রাউজার এম্বেডড ফ্ল্যাশ সামগ্রী প্রদর্শন করতে সক্ষম কিনা তা সনাক্ত করতে আইই / ফায়ারফক্স জুড়ে নির্ভরযোগ্যভাবে ভাল কাজ করতে পারে। আমি নির্ভরযোগ্যভাবে বলি কারণ আমি জানি 100% সময় এটি সম্ভব নয়।
উত্তর:
এসডাব্লুএফওবজেক্টটি খুব নির্ভরযোগ্য। আমি বেশ কিছুক্ষণ ঝামেলা ছাড়াই এটি ব্যবহার করেছি।
$('html').addClass(typeof swfobject !== 'undefined' && swfobject.getFlashPlayerVersion().major !== 0 ? 'flash' : 'no-flash');
if( swfobject.hasFlashPlayerVersion("8.0") ) { }
যদি কোনও ফ্ল্যাশ ইনস্টল না থাকে তবে থ্রো মিথ্যা দিয়ে সুইফজেক্ট ব্যবহার করে ফ্ল্যাশটির জন্য পরীক্ষা করুন । নম্বরটি প্রয়োজনীয় নূন্যতম ফ্ল্যাশ প্লেয়ার সংস্করণ।
আমি একমত ম্যাক্স স্টুয়ার্ট । এসডাব্লুএফওবজেক্ট হ'ল উপায়। আমি একটি কোড উদাহরণ দিয়ে তার উত্তর পরিপূরক চাই। আপনাকে শুরু করার জন্য এটি করা উচিত:
আপনি swfobject.js
ফাইলটি অন্তর্ভুক্ত করেছেন তা নিশ্চিত করুন (এটি এখানে পাবেন ):
<script type="text/javascript" src="swfobject.js"></script>
তারপরে এটির মতো ব্যবহার করুন:
if(swfobject.hasFlashPlayerVersion("9.0.115"))
{
alert("You have the minimum required flash version (or newer)");
}
else
{
alert("You do not have the minimum required flash version");
}
আপনার প্রয়োজনীয় নূন্যতম ফ্ল্যাশ সংস্করণটি "9.0.115" প্রতিস্থাপন করুন। আমি উদাহরণ হিসাবে 9.0.115 বেছে নিয়েছি কারণ এটি সংস্করণটি h.264 সমর্থন যুক্ত করেছে।
যদি দর্শকের কাছে ফ্ল্যাশ না থাকে তবে এটি "০.০.০" এর ফ্ল্যাশ সংস্করণটির প্রতিবেদন করবে, সুতরাং যদি আপনি কেবল তাদের কাছে ফ্ল্যাশ আছে কিনা তা জানতে চান, ব্যবহার করুন:
if(swfobject.hasFlashPlayerVersion("1"))
{
alert("You have flash!");
}
else
{
alert("You do not flash :-(");
}
if(SWFobject && SWFobject.hasFlashPlayerVersion("1")) { // code here }
আমি জানি এটি একটি পুরানো পোস্ট, তবে আমি কিছুক্ষণ খুঁজছিলাম এবং কিছুই পাইনি।
আমি জাভাস্ক্রিপ্ট ফ্ল্যাশ সনাক্তকরণ লাইব্রেরি প্রয়োগ করেছি । এটি খুব ভাল কাজ করে এবং এটি দ্রুত ব্যবহারের জন্য নথিভুক্ত করা হয়। এটি আমার কাছে আক্ষরিকভাবে 2 মিনিট সময় নেয়। শিরোনামে আমি লিখেছি কোড এখানে:
<script src="Scripts/flash_detect.js"></script>
<script type="text/javascript">
if (!FlashDetect.installed) {
alert("Flash is required to enjoy this site.");
} else {
alert("Flash is installed on your Web browser.");
}
</script>
আপনি একটি ছোট, ক্রস ব্রাউজার ফ্ল্যাশ সনাক্তকরণ উত্পন্ন করতে ক্লোজার সংকলকটি ব্যবহার করতে পারেন :
// ==ClosureCompiler==
// @compilation_level ADVANCED_OPTIMIZATIONS
// @output_file_name default.js
// @formatting pretty_print
// @use_closure_library true
// ==/ClosureCompiler==
// ADD YOUR CODE HERE
goog.require('goog.userAgent.flash');
if (goog.userAgent.flash.HAS_FLASH) {
alert('flash version: '+goog.userAgent.flash.VERSION);
}else{
alert('no flash found');
}
নিম্নলিখিত "সংকলিত" কোডে ফলাফল যা:
var a = !1,
b = "";
function c(d) {
d = d.match(/[\d]+/g);
d.length = 3;
return d.join(".")
}
if (navigator.plugins && navigator.plugins.length) {
var e = navigator.plugins["Shockwave Flash"];
e && (a = !0, e.description && (b = c(e.description)));
navigator.plugins["Shockwave Flash 2.0"] && (a = !0, b = "2.0.0.11")
} else {
if (navigator.mimeTypes && navigator.mimeTypes.length) {
var f = navigator.mimeTypes["application/x-shockwave-flash"];
(a = f && f.enabledPlugin) && (b = c(f.enabledPlugin.description))
} else {
try {
var g = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"),
a = !0,
b = c(g.GetVariable("$version"))
} catch (h) {
try {
g = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"), a = !0, b = "6.0.21"
} catch (i) {
try {
g = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"), a = !0, b = c(g.GetVariable("$version"))
} catch (j) {}
}
}
}
}
var k = b;
a ? alert("flash version: " + k) : alert("no flash found");
goog.userAgent.flash
গুগলের ক্লোজার কম্পাইলার থেকে)? আমি কেবল এটি নিশ্চিত করতে চাই যে আমি এখানে কিছু সংখ্যক পার্থক্য মিস করছি না।
সর্বনিম্ন সংস্করণ আমি কখনও ব্যবহার করেছি (সংস্করণ পরীক্ষা করে না, কেবলমাত্র ফ্ল্যাশ প্লাগইন):
var hasFlash = function() {
return (typeof navigator.plugins == "undefined" || navigator.plugins.length == 0) ? !!(new ActiveXObject("ShockwaveFlash.ShockwaveFlash")) : navigator.plugins["Shockwave Flash"];
};
কার্ল ইয়েস্ট্রাউ এর জাভাস্ক্রিপ্ট ফ্ল্যাশ সনাক্তকরণ লাইব্রেরি, এখানে:
http://www.featureblend.com/javascript-flash-detection-library.html
... আপনি যা খুঁজছেন তা হতে পারে।
সম্ভবত অ্যাডোবের ফ্ল্যাশ প্লেয়ার সনাক্তকরণ কিটটি এখানে সহায়ক হতে পারে?
http://www.adobe.com/products/flashplayer/download/detection_kit/
একটি ওয়েব ডকুমেন্টের মধ্যে ফ্ল্যাশ সনাক্তকরণ এবং এম্বেড করা আশ্চর্যরকম একটি কঠিন কাজ।
আমি SWFObject এবং অ্যাডোব উভয় সমাধান থেকে উত্পাদিত মানের এবং অ-মানক সম্মতিযুক্ত মার্কআপ নিয়ে খুব হতাশ ছিলাম। অতিরিক্তভাবে, আমার পরীক্ষায় অ্যাডোবের অটো আপডেটেটারটি বেমানান এবং বিশ্বাসযোগ্য নয় বলে প্রমাণ পেয়েছে।
জাভাস্ক্রিপ্ট ফ্ল্যাশ সনাক্তকরণ লাইব্রেরি (ফ্ল্যাশ সনাক্তকরণ) এবং জাভাস্ক্রিপ্ট ফ্ল্যাশ এইচটিএমএল জেনারেটর লাইব্রেরি (ফ্ল্যাশ টিএমএল) হ'ল একটি স্পেসিফিক, রক্ষণাবেক্ষণযোগ্য এবং মান মেনে চলার মার্কআপ সমাধান।
- "লুক পড়ুন উত্স!"
একটি লাইনার isFlashExists
ভেরিয়েবলের জন্য কোড :
<script type='text/javascript'
src='//ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js'> </script>
<script type='text/javascript'>
var isFlashExists = swfobject.hasFlashPlayerVersion('1') ? true : false ;
if (isFlashExists) {
alert ('flash exists');
} else {
alert ('NO flash');
}
</script>
মনে রাখবেন যে এর মতো বিকল্প রয়েছে: swfobject.getFlashPlayerVersion();
Http://whatsmy.browserize.com (লাইন 14-120) এ উত্সটি দেখুন ।
কেবলমাত্র ফ্ল্যাশ সনাক্তকরণের জন্য jsbin এ বিমূর্ত ক্রস ব্রাউজার কোডটি এখানে রয়েছে : এফএফ / আইই / সাফারি / অপেরা / ক্রোম।
detectObject()
জন্য অংশীদার ।
কি সম্পর্কে:
var hasFlash = function() {
var flash = false;
try{
if(new ActiveXObject('ShockwaveFlash.ShockwaveFlash')){
flash=true;
}
}catch(e){
if(navigator.mimeTypes ['application/x-shockwave-flash'] !== undefined){
flash=true;
}
}
return flash;
};
আপনি যদি খাঁটি জাভাস্ক্রিপ্ট সমাধানে আগ্রহী হন, আমি ব্রেট থেকে এখানে অনুলিপিটি দিয়েছি :
function detectflash(){
if (navigator.plugins != null && navigator.plugins.length > 0){
return navigator.plugins["Shockwave Flash"] && true;
}
if(~navigator.userAgent.toLowerCase().indexOf("webtv")){
return true;
}
if(~navigator.appVersion.indexOf("MSIE") && !~navigator.userAgent.indexOf("Opera")){
try{
return new ActiveXObject("ShockwaveFlash.ShockwaveFlash") && true;
} catch(e){}
}
return false;
}
আপনি যদি কেবল ফ্ল্যাশ সক্ষম কিনা তা পরীক্ষা করতে চেয়েছিলেন, এটি যথেষ্ট হওয়া উচিত।
function testFlash() {
var support = false;
//IE only
if("ActiveXObject" in window) {
try{
support = !!(new ActiveXObject("ShockwaveFlash.ShockwaveFlash"));
}catch(e){
support = false;
}
//W3C, better support in legacy browser
} else {
support = !!navigator.mimeTypes['application/x-shockwave-flash'];
}
return support;
}
দ্রষ্টব্য: সক্ষম প্লাগিন পরীক্ষা করা এড়াতে , কিছু মোবাইল ব্রাউজারে ট্যাপ-টু-সক্ষম ফ্ল্যাশ প্লাগইন রয়েছে এবং এটি মিথ্যা নেতিবাচক ট্রিগার করবে।
একটি ফ্ল্যাশ অবজেক্ট স্ট্যান্ডার্ট-কমপ্লায়েন্ট তৈরি করতে (তবে জাভাস্ক্রিপ্ট সহ) আপনার পরামর্শ দেওয়া উচিত
আপত্তিজনক ফ্ল্যাশ অবজেক্টস (ইউএফও)
একটি ছোট তৈরি করেছে .swf
যা পুনর্নির্দেশ করে। ব্রাউজারটি ফ্ল্যাশ সক্ষম থাকলে তা পুনর্নির্দেশ করবে।
package com.play48.modules.standalone.util;
import flash.net.URLRequest;
class Redirect {
static function main() {
flash.Lib.getURL(new URLRequest("http://play48.com/flash.html"), "_self");
}
}
গুগল ক্লোজার সংকলক goog.require ('goog.userAgent.flash') লাইব্রেরি ব্যবহার করে আমি এটি 2 টি ফাংশন তৈরি করেছি।
বুলিয়ান হ'ল ফ্ল্যাশ ()
ব্রাউজারে ফ্ল্যাশ থাকলে ফিরে আসে।
function hasFlash(){
var b = !1;
function c(a) {if (a = a.match(/[\d]+/g)) {a.length = 3;}}
(function() {
if (navigator.plugins && navigator.plugins.length) {
var a = navigator.plugins["Shockwave Flash"];
if (a && (b = !0, a.description)) {c(a.description);return;}
if (navigator.plugins["Shockwave Flash 2.0"]) {b = !0;return;}
}
if (navigator.mimeTypes && navigator.mimeTypes.length && (a = navigator.mimeTypes["application/x-shockwave-flash"], b = !(!a || !a.enabledPlugin))) {c(a.enabledPlugin.description);return;}
if ("undefined" != typeof ActiveXObject) {
try {
var d = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");b = !0;c(d.GetVariable("$version"));return;
} catch (e) {}
try {
d = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");b = !0;
return;
} catch (e) {}
try {
d = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"), b = !0, c(d.GetVariable("$version"));
} catch (e) {}
}
})();
return b;
}
বুলিয়ান হল ফ্ল্যাশ ভার্সন (সংস্করণ)
ফ্ল্যাশ সংস্করণ সরবরাহিত সংস্করণের চেয়ে বেশি হলে ফিরে আসে
function isFlashVersion(version) {
var e = String.prototype.trim ? function(a) {return a.trim()} : function(a) {return /^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(a)[1]};
function f(a, b) {return a < b ? -1 : a > b ? 1 : 0};
var h = !1,l = "";
function m(a) {a = a.match(/[\d]+/g);if (!a) {return ""}a.length = 3;return a.join(".")}
(function() {
if (navigator.plugins && navigator.plugins.length) {
var a = navigator.plugins["Shockwave Flash"];
if (a && (h = !0, a.description)) {l = m(a.description);return}
if (navigator.plugins["Shockwave Flash 2.0"]) {h = !0;l = "2.0.0.11";return}
}
if (navigator.mimeTypes && navigator.mimeTypes.length && (a = navigator.mimeTypes["application/x-shockwave-flash"], h = !(!a || !a.enabledPlugin))) {l = m(a.enabledPlugin.description);return}
if ("undefined" != typeof ActiveXObject) {
try {
var b = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");h = !0;l = m(b.GetVariable("$version"));return
} catch (g) {}
try {
b = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");h = !0;l = "6.0.21";return
} catch (g) {}
try {
b = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"), h = !0, l = m(b.GetVariable("$version"))
} catch (g) {}
}
})();
var n = l;
return (function(a) {
var b = 0,g = e(String(n)).split(".");
a = e(String(a)).split(".");
for (var p = Math.max(g.length, a.length), k = 0; 0 == b && k < p; k++) {
var c = g[k] || "",d = a[k] || "";
do {
c = /(\d*)(\D*)(.*)/.exec(c) || ["", "", "", ""];d = /(\d*)(\D*)(.*)/.exec(d) || ["", "", "", ""];
if (0 == c[0].length && 0 == d[0].length) {break}
b = f(0 == c[1].length ? 0 : parseInt(c[1], 10), 0 == d[1].length ? 0 : parseInt(d[1], 10)) || f(0 == c[2].length, 0 == d[2].length) || f(c[2], d[2]);c = c[3];d = d[3]
} while (0 == b);
}
return 0 <= b
})(version)
}