Desenvolvimento - Silverlight

Acessando funções JavaScript pelo Silverlight (C#)

O que irei mostrar neste artigo é como acessar, de forma simplificada, uma função JavaScript criada no código HTML através da aplicação Silverlight.

por Lucas Defacio



Introdução

Quando se trata de sistemas web, uma linguagem que merece um grande reconhecimento é o JavaScript. Inicialmente foi criado para atender duas necessidades: Validação de formulários no lado cliente e interação com a página. Com isto, é comum utilizar JavaScript dentro de um projeto em outras linguagens (C#, VB, etc..). O que irei mostrar neste artigo é como acessar, de forma simplificada, uma função JavaScript criada no código HTML através da aplicação Silverlight.

Construindo a função JavaScript

Para poder iniciar este artigo, vamos construir uma função básica de Alert() em nossa página HTML (ou aspx). O Quadro 1 ilustra a função.

<script type="text/javascript">

        function AlertaJS(RecebeTexto) {

            alert("Seu código JavaScript foi acessado através do " + RecebeTexto);  

        }  

    </script>

Quadro 1: Função básica de Alert() na linguagem JavaScript.

Acessando a função JavaScript pelo Silverlight

Inicialmente, adicionaremos um objeto do tipo Button em nossa aplicação e definiremos o evento Click chamando o método Button_Click como apresentado no Quadro 2.

<Grid x:Name="LayoutRoot" Background="White">

        <Button Width="120" Height="25" Content="Chamar Javascript" Click="Button_Click" />

</Grid>

Quadro 2: Objeto Button com o evento Click.

Por fim, utilizaremos  o método Invoke() para acessar o nosso JavaScript (Quadro 3). O primeiro parâmetro que passamos é o nome da função JavaScript que deverá ser chamada, e o segundo são os parâmetros que serão recebidos.

private void Button_Click(object sender, RoutedEventArgs e)

{

     HtmlPage.Window.Invoke("AlertaJS", "Silverlight");

}

Quadro 3: Utilizando o método Invoke() para acessar a função JavaScript.

Importante: para utilizar a classe HtmlPage é necessário referênciar o namespace: using System.Windows.Browser;

A Figura 1 ilustra o resultado ao se clicar no botões criado no Silverlight.

Figura 1: resultado obtido ao se clicar no botão da aplicação Silverlight.

Conclusão

A utilização do JavaScript dentro do Silverlight é bem simples e funcional. Em alguns cenários, o resultado obtido com esta combinação pode melhorar a navegabilidade e a experiência do usuário.

Lucas Defacio

Lucas Defacio - Estudante de Sistemas de Informação, atua como designer e desenvolvedor em Rich Interface Applications (RIA) no Flextronics Institute of Technology (FIT) em Sorocaba/SP. É Moderador do fórum de Silverlight no Portal MSDN Brasil e fundador do portal Brasilverlight (http://www.brasilverlight.com.br/), busca aprimorar a experiência dos usuários com sites interativos e promover a tecnologia Silverlight.