Nelle applicazioni Silverlight Out Of Browser (OOB) abbiamo a disposizione il controllo WebBrowser per visualizzare il contenuto di pagine HTML, sia remote che locali.
Nonostante la pagina HTML sia gestita dal controllo, abbiamo la possibilità di comunicare con essa attraverso Javascript, in un modo molto simile a quanto abbiamo visto nello script #45.
Il controllo WebBrowser, infatti, dispone del metodo InvokeScript al quale possiamo passare il nome della funzione Javascript da chiamare, insieme ai parametri che vogliamo passare alla funzione stessa:
private void Button1_Click(object sender, RoutedEventArgs e)
{
object results = WB1.InvokeScript("LoadSearch", new string[] { "Silverlight" });
}WB1 rappresenta il controllo WebBrowser presente nello UserControl principale:
<WebBrowser x:Name="WB1"
Source="http://localhost:34050/HTMLPage1.htm"
Height="200"
Width="300"
ScriptNotify="WB1_ScriptNotify"/>LoadSearch, invece, è il nome della funzione Javascript presente nella pagina HTML ospitata dal controllo:
<script type="text/javascript">
function LoadSearch(searchString) {
window.location = "http://www.bing.com/search?q=" + searchString
window.external.notify("Search completed")
}
</script>Nell'esempio, la funzione usa la stringa passata come parametro per usarla come parametro di una ricerca con Bing. Grazie alla funzione window.external.notify è possibile effettuare la comunicazione inversa dalla pagina verso l'applicazione. Dopo l'invocazione di tale funzione, il controllo WebBrowser esegue il metodo definito nella proprietà ScriptNotify, nell'esempio WB1_ScriptNotify:
void WB1_ScriptNotify(object sender, NotifyEventArgs e)
{
MessageBox.Show(e.Value);
}Il parametro passato dalla funzione Javascript window.external.notify viene trasferito all'applicazione Silverlight attraverso l'oggetto NotifyEventArgs.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare Containers in .NET Aspire
Gestire progetti .NET + React in .NET Aspire
Definire il colore di una scrollbar HTML tramite CSS
Autenticazione di git tramite Microsoft Entra ID in Azure DevOps
Abilitare automaticamente il force push di un gruppo su Azure DevOps
Utilizzare @property per animare nativamente un oggetto HTML tramite CSS
DevSecOps per .NET: dalla teoria alla pratica
Integrare modelli AI in un workflow di GitHub
Monitorare le tabelle di Azure SQL Database con Change Event Streaming
Interazione con ReconnectModal in Blazor
Self-healing degli unit test con Copilot in GitHub
Dallo sviluppo locale ad Azure con .NET Aspire
I più letti di oggi
- Raggruppare i parametri di una minimal API in un singolo oggetto in ASP.NET Core
- Sapere il valore minimo e massimo di un valore in una query SQL
- Sfruttare le funzionalità del GPS con HTML5 e Geolocation API
- Leggere la posta usando il protocollo IMAP tramite la libreria MailKit
- Community Night@Basta!Italia on tour 2009 - Bologna
- Rilasciato Team Foundation Server e le versioni Express di Visual Studio 2008
- Rilasciata la versione 1.0 di ASP.NET MVC
- Due nuovi controlli ed esempi in VB nel Windows Phone Toolkit di febbraio 2011
- Disponibile la June 2011 CTP di Entity Framework




