2017-01-06 20 views
1

Я пытаюсь сделать простую проверку, если установлена ​​вспышка, как это было предложено hereЕсли вспышка установлена ​​

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> 
<script type="text/javascript" src="swfobject.js"></script> 

<script type="text/javascript"> 
$(document).ready(function() { 
    console.log("ready!"); 
    if (!$.flash.hasVersion('9')) { //error 
     //has Flash 
     console.log("flash installed!"); 
     ... 

Но я получаю сообщение об ошибке, что здесь не так?

TypeError: $.flash is undefined

+0

Похоже, вам нужно установить 'flash' плагин в' jquery' , – arkascha

+2

Но .... 'flash' в 2017 году? Шутки в сторону? Эта лошадь по праву была убита _ лет назад _... – arkascha

+0

В дополнение к тому, что сказал @arkascha - с Chrome 53 Flash отключен по умолчанию, и я считаю, что Firefox планирует последовать этому примеру в этом году. Если ваша работа требует, чтобы вы ее использовали, достаточно справедливо (хотя я надеюсь, что у бога есть план миграции), но если этот вопрос касается личного проекта, я бы порекомендовал вам избегать использования Flash. –

ответ

1

Это должно работать ...

function flashExists() { 
    for (var i in navigator.plugins) { 
     if (navigator.plugins[i].name && navigator.plugins[i].name.toString().indexOf('Flash') > -1) { 
      return true; 
     } 
    } 
    return false; 
} 
1

Ваш код возвращает ошибку, потому что SWFObject и JQuery две совершенно не связанные библиотеки. SWFObject не имеет объекта $.flash.

Чтобы проверить, если вспышка доступна с помощью SWFObject, выполните следующие действия:

var meetsMinimumFlashRequirement = swfobject.hasFlashPlayerVersion("9"); 

if(meetsMinimumFlashRequirement){ 
    //Use Flash 
} else { 
    //Flash not available, use a fallback 
} 

См LearnSWFObject.com для более подробной информации и примеров. http://learnswfobject.com/advanced-topics/detecting-flash-player-version-using-swfobject/index.html

Я подозреваю, что код, который вы используете, основан на оболочке jQuery для SWFObject. Если это так, вы не указали источник для обертки на своей странице, поэтому обертка терпит неудачу. Лично я бы просто использовал SWFObject напрямую.

(На самом деле, я бы не использовать вспышку на всех, но если бы я должен был использовать Flash, я хотел бы использовать SWFObject непосредственно.)