May 12th, 2014

Korchiy

Flash не реагирует на нажатие клавиш - автоматическая установка фокуса на flash-приложение в браузер

При открытии html-страницы со встроенным flash-приложением фокус автоматически на приложение не устанавливается. В результате flash-приложение не реагирует на нажатия клавиш на клавиатуре, пока по нему не сделать клик мышкой.
Эту проблему можно обойти путем программной установки фокуса на flash-приложение при загрузке html-странички.
Для этого нужно включить в html-код следующие строчки:

в заголовке <head>:

<script type="text/javascript">
function SetFocusToFlash() {
   if (navigator.userAgent.match(/MSIE/)) document.FlashName.focus(); // IE
   else document.getElementById("FlashId").focus(); // Остальные браузеры
}
</script>

в теге <body>:

<body onLoad='javascript:SetFocusToFlash();'>

в теге <embed>:

<embed src="MyFlash.swf" quality="autohigh" width="100%" height="100%" name="FlashName" id="FlashId" wmode="opaque" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"/>

параметр wmode="opaque" нужен для браузера FireFox

Проверено в браузерах: Internet Explorer, Google Chrome, FireFox, Opera