[javascript] 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에서 작동합니다.
답변
@Drewid의 대답은 플래시 플러그인이 비활성화되었지만 설치된 경우 Firefox 25에서 작동하지 않았습니다.
해당 답변의 @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
답변
답변
원래 justpassinby가 제안한 Adobe의 감지 키트를 사용했습니다. 그들의 시스템은 버전 번호를 감지하고 ‘필수 버전’과 비교하기 때문에 좋습니다.
한 가지 나쁜 점은 감지 된 플래시 버전을 보여주는 경고를하는 것인데, 이는 사용자 친화적이지 않습니다. 갑자기 임의의 숫자가있는 상자가 나타납니다.
고려할 수있는 몇 가지 수정 사항 :
- 경고 제거
- 객체 (또는 배열)를 반환하도록 변경합니다. — 첫 번째 요소는 “사용자의 컴퓨터에서 필요한 버전을 찾았습니까?”에 대한 부울 true / false입니다. — 두 번째 요소는 사용자의 컴퓨터에서 찾은 실제 버전 번호입니다.