Alguém tem um exemplo de script que pode funcionar bem no IE / Firefox para detectar se o navegador é capaz de exibir conteúdo flash embutido? Digo com segurança porque sei que não é possível 100% das vezes.
96
Alguém tem um exemplo de script que pode funcionar bem no IE / Firefox para detectar se o navegador é capaz de exibir conteúdo flash embutido? Digo com segurança porque sei que não é possível 100% das vezes.
Respostas:
SWFObject é muito confiável. Eu tenho usado sem problemas por um bom tempo.
fonte
$('html').addClass(typeof swfobject !== 'undefined' && swfobject.getFlashPlayerVersion().major !== 0 ? 'flash' : 'no-flash');
if( swfobject.hasFlashPlayerVersion("8.0") ) { }
Throws false se não houver flash instalado. O número é a versão mínima do flash player necessária.Eu concordo com Max Stewart . SWFObject é o caminho a percorrer. Eu gostaria de complementar sua resposta com um exemplo de código. Isso deve ajudá-lo a começar:
Certifique-se de incluir o
swfobject.js
arquivo (baixe-o aqui ):Em seguida, use-o assim:
Substitua "9.0.115" por qualquer versão mínima de flash necessária. Escolhi 9.0.115 como exemplo porque essa é a versão que adicionou suporte a h.264.
Se o visitante não tiver flash, ele relatará uma versão flash de "0.0.0", então se você quiser apenas saber se eles têm flash, use:
fonte
if(SWFobject && SWFobject.hasFlashPlayerVersion("1")) { // code here }
Sei que este é um post antigo, mas estou procurando há um tempo e não encontrei nada.
Implementei a Biblioteca de detecção de Flash JavaScript . Funciona muito bem e está documentado para uso rápido. Levei literalmente 2 minutos. Aqui está o código que escrevi no cabeçalho:
fonte
Você pode usar o compilador de encerramento para gerar uma pequena detecção de flash em vários navegadores:
que resulta no seguinte código "compilado":
fonte
goog.userAgent.flash
do Closure Compiler do Google)? Eu só quero ter certeza de que não estou perdendo nenhuma diferença de nuances aqui.Versão mínima que eu já usei (não verifica a versão, apenas Flash Plugin):
fonte
Biblioteca de detecção de Flash JavaScript de Carl Yestrau, aqui:
http://www.featureblend.com/javascript-flash-detection-library.html
... pode ser o que você está procurando.
fonte
Talvez o kit de detecção de flash player da Adobe possa ser útil aqui?
http://www.adobe.com/products/flashplayer/download/detection_kit/
fonte
Detectar e incorporar Flash em um documento da web é uma tarefa surpreendentemente difícil.
Fiquei muito desapontado com a qualidade e a marcação não compatível com os padrões gerada tanto pelo SWFObject quanto pelas soluções da Adobe. Além disso, meu teste revelou que o atualizador automático da Adobe é inconsistente e não confiável.
A Biblioteca de detecção de Flash JavaScript (Detecção de Flash) e a Biblioteca do gerador de HTML Flash JavaScript (Flash TML) são uma solução de marcação legível, de fácil manutenção e compatível com os padrões.
- "Luke leu a fonte!"
fonte
Código para uma
isFlashExists
variável de linha :Observe que existe uma alternativa como esta:
swfobject.getFlashPlayerVersion();
fonte
Veja a fonte em http://whatsmy.browsersize.com (linhas 14-120).
Aqui está o código do navegador cruzado abstraído em jsbin para detecção de flash apenas , funciona em: FF / IE / Safari / Opera / Chrome.
fonte
detectObject()
contraparte do IE.A respeito:
fonte
Se você está interessado em uma solução Javascript puro, aqui está o que copio de Brett :
fonte
Se você apenas deseja verificar se o flash está habilitado, isso deve ser o suficiente.
Nota: evite marcar o enabledPlugin , algum navegador móvel tem plug-in flash para ativar e irá acionar falso negativo.
fonte
Para criar um objeto Flash compatível com o padrão (com JavaScript, no entanto), recomendo que você dê uma olhada em
Objetos Flash discretos (OVNIs)
http://www.bobbyvandersluis.com/ufo/index.html
fonte
Criei um pequeno
.swf
que redireciona. Se o navegador estiver habilitado para flash, ele redirecionará.fonte
Usando a biblioteca goog.require ('goog.userAgent.flash') do compilador Google Closure, criei essas 2 funções.
hasFlash booleano ()
Retorna se o navegador tiver flash.
boolean isFlashVersion (versão)
Retorna se a versão do flash for maior que a versão fornecida
fonte