In Silverlight avem doua controlare care se ocupa cu acest lucru WebBrower si HtmlBrush. Din pacare doar WebBrower stie sa faca handling la evenimente de java script. Prin intermediul acestora codul C# poate sa apele metode javascrip din interiorul paginii pe care o afisam sau sa se inregistreze la anumite evenimente(metode).
Pentru a putea face acest lucru este nevoie sa adaugam in fisierul xaml controlerul care ne permite sa afisam continut HTML:
<WebBrowser x:Name="browserControl" />
Pasul urmator este sa ne inregistram la notificarea dorita. Aceasta notificare reprezinta un apel a unei metode din javascript.
browserControl.ScriptNotify += new EventHandler<NotifyEventArgs>(BrowserControl_ScriptNotify);
...
void browserControl_ScriptNotify(object sender, NotifyEventArgs e)
{
...
}
In acest moment toate mesajele de notificare o sa fie prinse si procesate de catre metoda BrowserControl_ScriptNotify. In aceasta metoda parametrul e.Value reprezenta numele la notificarea pe care noi am primito.In codul HTML pe care noi il afisam in controller, trebuie sa apelam metoda window.external.notify("nume_notificare").
Aceasta metoda se poate apela oriunde in codul javascript sau se poate atasa la tag-uri prin evenimentul onclick de exemplu.
0 comments:
Post a Comment