PDA

Просмотр полной версии : как установить фокус для флэш в браузере


Atarion
21.09.2011, 12:47
вставляю ролик так:
echo" <object id='id1' width='1100' height='800'><param id='d41' allowscriptaccess:'always' name='1' value='1.swf?t=$t'>
<embed src='1.swf?t=$t' id='id1' allowscriptaccess:'always' wmode='transparent' width='1100' height='800'>
</embed>
</object>
но в опере - он не получает фокуса по умолчанию - и поэтому приходится на него раз щелкнуть - он получит фокус- и только тогда начинает взаимодействовать с пользователем. как можно это сделать из ява скрипта?

kackbip
21.09.2011, 13:09
Используйте swfobject для встройки флэшек

Atarion
21.09.2011, 13:18
мне хочется самому понять как это сделать. готовое использовать - проще всего. ведь там ВНУТРИ тоже ведь как то это делается! не боги горшки обжигают!

neva
21.09.2011, 13:31
function setFocus()
{
var swf = document.getElementById('Main');
swf.focus();
}

window.setTimeout('setFocus ()', 1);
Попробуйте так, может поможет... Код необходимо вставить в index.html, в котором стоит влешка с id='Main'

Atarion
21.09.2011, 13:59
это уже пробовал - не помогло.

Добавлено через 58 секунд
только без таймера. зачем здесь он. лучше body onload

fish_r
21.09.2011, 14:24
мне хочется самому понять как это сделать. готовое использовать - проще всего. ведь там ВНУТРИ тоже ведь как то это делается! не боги горшки обжигают!

Если готовое использовать - слишком легко, придумать самому - слишком сложно, может посмотреть что в swfObject написано?

wiselord
11.02.2012, 16:20
SWFObject автоматически устанавливает фокус на флешку сразу после загрузки html страницы или там есть для этого метод?
Я встраивал им, но фокус не устанавливался...возможно, я делал что-то не так...киньте, пожалуйста, ссылку на проверенную инструкцию по встраиванию флешки с помощью SWFObject, чтобы фокус устанавливался...

Вот такой код устанавливает фокус ввода на флешку в IE и FireFox

<!-- saved from url=(0013)about:internet -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body bgcolor="#ffffff" onload="document.getElementById('fleshka').focus();">
<embed src="myFlash.swf"
id = "fleshka"
play="false"
loop="false"
menu="false"
quality="high"
scale="noborder"
wmode="opaque"
devicefont="true"
bgcolor="#ffffff"
width="1100"
height="800"
name="Buttons"
align="middle"
swLiveConnect="false"
type="application/x-shockwave-flash"
pluginspage="http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"

/>
</body>
</html>

Особо стоит обратить внимание на параметр wmode="opaque". Без него FireFox фокус не переводит.
К сожалению в Chrome и Opera это не работает.

wvxvw
11.02.2012, 16:24
http://code.google.com/p/swfobject/source/browse/

wiselord
11.02.2012, 17:15
http://code.google.com/p/swfobject/source/browse/
Странно...
В архиве есть пример...
Так вот даже в примере фокус на флешку не устанавливается...
А IE вообще переспрашивает выполнять ли контент...

Добавлено через 16 часов 47 минут
Кстати, если в моём примере ещё установить tabindex = 1, то фокус будет автоматически переводиться на флешку ещё и в Chrome

<!-- saved from url=(0013)about:internet -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body bgcolor="#ffffff" onload="document.getElementById('fleshka').focus();">
<embed src="myFlash.swf"
id = "fleshka"
tabindex = "1"
play="false"
loop="false"
menu="false"
quality="high"
scale="noborder"
wmode="opaque"
devicefont="true"
bgcolor="#ffffff"
width="1100"
height="800"
name="Buttons"
align="middle"
swLiveConnect="false"
type="application/x-shockwave-flash"
pluginspage="http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"

/>
</body>