2009-03-06 11 views
2

J'ai une application WPF contenant un contrôle Frame. Le contrôle de cadre affiche le contenu html. La page html contient une fonction JavaScript que je veux appeler après le chargement de la page html sur Frame et à partir du code WPF? Y at-il un moyen que je peux appeler la méthode JavaScript de la page html chargée dans le contrôle de trame WPF et à partir du code WPF?WPF Frame control

Répondre

1

Il n'y a pas d'accès au DOM, donc c'est un pas que j'ai peur. Si c'est quelque chose que vous avez vraiment besoin, alors votre meilleur pari est probablement d'intégrer le contrôle WinForms WebBrowser de System.Windows.Forms.

<Page 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:f="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms" 
    xmlns:fi="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration.dll" > 
    <Grid> 
    <fi:WindowsFormsHost> 
     <f:WebBrowser x:Name="BrowserControl" Url="http://www.myurl.com/"/> 
    </fi:WindowsFormsHost> 
    </Grid> 
</Page> 
0

Utilisez <body onload="javascript:alert('hi its loaded. do what you want here');"> dans votre page HTML, disent myhtmlpage.html.

Utilisez ensuite un contrôle XAML de cadre (<Frame Name="myWpfFrame" Source="http://myurl/myhtmlpage.html">) dans votre code WPF.


Cette solution fonctionnera en supposant que vous voulez appeler le javascript une seule fois et c'est seulement après la page HTML est chargée.

Si vous voulez appeler les js plus d'une fois, vous pouvez éventuellement définir la propriété source du contrôle de trame à partir du code comme et quand vous avez besoin ... comme .. myWpfFrame.Source = myWpfFrame.Source;