Flash가 설치되어 있는지 확인하고있는 경우 사용자에게 알리는 숨겨진 div를 표시해야 할 것입니까?
javascript / jQuery / etc를 사용하여 Flash가 설치되어 감지하고 설치되어 있지 않은 경우 사용자에게 Flash를 설치해야 함을 알리는 정보가 포함 된 div를 표시해야할까요?
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에서 작동합니다.
플래시 작동이 작동하지 않습니다.
@invertedSpear의 @invertedSpear의 의견은 Firefox에서 작동했지만 IE에서는 작동하지 않습니다.
그래서 결혼식 코드를 결합하여 얻었습니다. Google Chrome 31, Firefox 25, IE 8-10에서 테스트되었습니다. Drewid 및 invertedSpear :) 감사합니다.
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;
}
}
navigator.mimeTypes를 사용할 수 있습니다.
if (navigator.mimeTypes ["application/x-shockwave-flash"] == undefined)
$("#someDiv").show ();
jqplugin : http://code.google.com/p/jqplugin/
$.browser.flash == true
당신은 또한 사용할 수 있습니다 ..
swfobject.getFlashPlayerVersion().major === 0
와 swfobject-플러그인 .
원래 justpassinby가 제안한 Adobe의 감지 키트를 사용했습니다. 결혼식 시스템은 버전 번호를 감지하고 '필수 버전'과 비교하기 때문에 좋습니다.
한 가지 나쁜 점은 감지 된 플래시 버전을 경고를 표시하는 것인데, 이것은 사용자가 사용하지 않습니다. 갑자기 임의의 숫자가있는 상자가 나타납니다.
고려할 수있는 몇 가지 수정 사항 :
- 경고 제거
- 또는 배열을 변경합니다. --- 첫 번째 요소는 "사용자의 컴퓨터에서 필요한 버전을 발견 했습니까?"에 대한 부울 true / false입니다. --- 두 번째 요소는 사용자의 컴퓨터에서 실제 버전 번호입니다.
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
}
'IT' 카테고리의 다른 글
Ruby에서 DateTime.now를 UTC로 어떻게 변환합니까? (0) | 2020.09.08 |
---|---|
UIActivityIndicator의 크기를 어디에 있습니까? (0) | 2020.09.08 |
C #의 .resx 파일에서 읽기 읽기 (0) | 2020.09.08 |
JQuery로 "onclick"을 제거하는 방법은 무엇입니까? (0) | 2020.09.08 |
grunt throw "Recursive process.nextTick detected" (0) | 2020.09.08 |