Saudações amigos.
Hoje repasso uma dica que muitos desenvolvedores Flex procuram, porém como eu, encontraram uma modificação no index.template que não funcionou.
Para fazer com que o foco caia no componente desejado na aplicação flex logo que a página seja carregada é bem simples, não necessita de nenhuma alteração no html, apenas no Flex mesmo.
Adicione uma função para o creationComplete da aplicação e insira o comando ExternalInterface.call() e logo abaixo o componente que deseja que receba o foco dentro da aplicação.
private function initApp():void{
ExternalInterface.call(’window.document.nomeDaAplicação.focus()’);
textInput.setFocus();
}
O comando ExternalInterface.call é usado para chamar uma função javascript no html da aplicação.
Com ele você poderá chamar outras funções javascript, como por exemplo, pegar parâmetros de uma url.
Abraços à todos!
This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.
4 Responses
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.
complementando a dica:
- não funciona com Safari (Mac)
- window.document.app.focus não funciona para alguns navegadores (não lembro quais), mas para maior compatibilidade com outros navegadores vc deve executar uma segunda chamada:
ExternalInterface.call("document.getElementById('nomeDaAplicação').focus()");
vlw Erko, de grande ajuda essa informação
rs… foi mal Jean Carlos, pensei que fosse o site do Erko, furo meu
Cara, eu estou tentando fazer isso que voce ensinou mas nao funfa de jeito nenhum. eu dei o nome la no application name='aplicadorJava',
e criei a funcao como voce mostrou, e ja alterado pela dica do colega janderson. mas nao funfa dejeito nenhum, ele so da o foco, mas o cursor nao pisca.
private function onLoad():void {
ExternalInterface.call("document.getElementById('aplicadorJava').focus()");
nome.setFocus();
}