2012-03-21 10 views
1

他のブラウザ(IEではなく)でswfのキーボードフォーカスを設定するコードはどのようになりますか?すべてのブラウザでのフラッシュのキーボードフォーカス

私は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を設定する必要があります。

(ジョナサン・スヌークは数年前にMozilla provides a good overview of the topicnice simple overviewを書いた、と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'を埋め込みIDとして使用し、myfile.swfをsrcとして使用しますか? –

+0

「expressInstall.swf」とは何ですか? –

+0

params.wmode = 'opaque'を設定する必要はありますか? –

関連する問題