[javascript] 자바 스크립트에서 브라우저 간 플래시 감지

브라우저가 임베디드 플래시 콘텐츠를 표시 할 수 있는지 감지하기 위해 IE / Firefox에서 안정적으로 작동 할 수있는 스크립트 예제가있는 사람이 있습니까? 나는 그것이 불가능하다는 것을 100 % 알고 있기 때문에 확실하게 말한다.



답변

SWFObject 는 매우 안정적입니다. 나는 꽤 오랫동안 문제없이 그것을 사용했습니다.


답변

나는 Max Stewart에 동의합니다 . SWFObject 는 갈 길입니다. 코드 예제로 그의 대답을 보완하고 싶습니다. 시작해야합니다.

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를 예로 선택했습니다. 264 지원을 추가 한 버전이기 때문입니다.

방문자에게 플래시가없는 경우 “0.0.0”의 플래시 버전을보고하므로 플래시가 전혀 없는지 알고 싶다면 다음을 사용하세요.

if(swfobject.hasFlashPlayerVersion("1"))
{
    alert("You have flash!");
}
else
{
    alert("You do not flash :-(");
}


답변

나는 이것이 오래된 게시물이라는 것을 알고 있지만 한동안 찾고 있었지만 아무것도 찾지 못했습니다. JavaScript Flash Detection Library를
구현했습니다 . 매우 잘 작동하며 빠른 사용을 위해 문서화되어 있습니다. 말 그대로 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");


답변

내가 사용한 최소 버전 (버전을 확인하지 않고 Flash 플러그인 만) :

var hasFlash = function() {
    return (typeof navigator.plugins == "undefined" || navigator.plugins.length == 0) ? !!(new ActiveXObject("ShockwaveFlash.ShockwaveFlash")) : navigator.plugins["Shockwave Flash"];
};


답변

Carl Yestrau의 JavaScript Flash Detection Library는 다음과 같습니다.

http://www.featureblend.com/javascript-flash-detection-library.html

… 당신이 찾고있는 것일 수 있습니다.


답변

어도비의 플래시 플레이어 감지 키트가 여기에 도움이 될 수 있습니까?

http://www.adobe.com/products/flashplayer/download/detection_kit/