2012-03-21 2 views
1

Каким будет код для установки фокуса клавиатуры для swf в других браузерах (а не в IE).Клавиатура фокус для вспышки во всех браузерах

Я знаю, что для IE просто

document.getElementById('movieID').focus(); 

Как бы для других браузеров?

+0

Ваш код в порядке, пожалуйста, внесите дальнейшие расследования в свой код и более тщательно изучите форум, прежде чем отправлять такие вопросы. в любом случае проверьте [эту тему] (http://stackoverflow.com/questions/4183325/focus-an-element-created-on-the-fly), возможный дубликат. –

+0

Я думаю, что работает только для IE. Не работает для Chrome. –

+0

Эта нить может дать фокус вспышке, но не дает фокусу фокуса. –

ответ

2

Единственными элементами HTML, которые ориентированы в основном фокусом, являются ссылки (<a>) и элементы формы, такие как <input>. Чтобы создать элемент HTML с помощью javascript, вам необходимо установить элемент tabIndex.

(Jonathan Snook написал nice simple overview несколько лет назад Mozilla provides a good overview of the topic и W3C обсуждает keyboard focus in relation to ARIA.).

После Flash SWF встраивается, вы можете сосредоточиться на новый <object> элемент следующим образом:

var flashvars = {}; 
var params = {}; 
var attributes = {}; 
var callbackFn = function(e){ 
    if(e.success){ 
     e.ref.tabIndex = "-1"; 
     e.ref.focus(); 
    } 
}; 

swfobject.embedSWF("myfile.swf", "myflashelement", "550", "400", "9.0.0", "expressInstall.swf", flashvars, params, attributes, callbackFn); 

В фокусе клавиатуры подробно обсуждается SWFObject support thread, если вы хотите получить дополнительную информацию.

+0

Поместите код в тег скрипта? И использовать 'myflashelement' как embed id, а myfile.swf - как src? –

+0

Что такое 'expressInstall.swf'? –

+0

Нужно ли устанавливать params.wmode = 'opaque'? –