ошибка swfobject не определена

Я пытаюсь обнаружить поддержку флэш-памяти и пытаюсь действовать, как в этом ответе: Кроссбраузерное обнаружение Flash в Javascript

Мой код следующий, но я всегда получаю одну и ту же ошибку: swfobject не определен. Я не должен этого понимать, потому что я пробую это в браузерах, поддерживающих flash (chrome и firefox).

if(swfobject){
    console.log("you have swfobject.");

    if(swfobject.hasFlashPlayerVersion("1")){
        console.log("You have flash!");
    }
    else{
        console.log("You do not flash :(");
    }
}else{
    console.log("you don't have swfobject");
}

Это проблема новейших браузеров? Есть ли другой способ обнаружить это?


person Vandervals    schedule 01.06.2015    source источник


Ответы (3)


Если swfobject не определено, у вас отсутствует необходимый файл JavaScript. Вы можете загрузить через CDN здесь https://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js

person pipwerks    schedule 01.06.2015

страница MDN на flash привела меня по совершенно другому пути:

if(navigator.mimeTypes["application/x-shockwave-flash"]){
    var plugin = navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin;
    var description = plugin.description;
    var versionArray = description.match(/[\d.]+/g);
    var flashVersionOSXScriptable = 12;
    var flashVersion = parseInt(versionArray[0]);

    if(navigator.userAgent.indexOf("Mach-O")==-1){
        if(flashVersion >= flashVersionOSXScriptable){
            console.log("you have flash");
        }else{
            console.log("you don't have flash");
        }
    }
}else{
    console.log("you don't have flash");
}
person Vandervals    schedule 01.06.2015

Попробуйте проверить typeof object следующим образом:

if(typeof swfobject != "undefined"){ //Check if type of the object is undefined

    console.log("you have swfobject.");

    if(swfobject.hasFlashPlayerVersion("1")){
        console.log("You have flash!");
    }
    else{
        console.log("You do not flash :(");
    }
}else{
    console.log("you don't have swfobject");
}
person Zee    schedule 01.06.2015
comment
Я не упомянул об этом, но проблема в том, что он выдает ошибку даже в браузерах, поддерживающих flash! - person Vandervals; 01.06.2015