我有一个包含Frame控件的WPF应用程序。帧控件显示html内容。 html页面包含一个JavaScript函数,我希望在框架和WPF代码上加载html页面后调用它?有没有办法可以调用WPF框架控件和WPF代码中加载的html页面的JavaScript方法?
答案 0 :(得分:3)
您无法与框架内的HTML进行交互。为了与HTML交互,您可以使用WPF的.NET 3.5 SP1的WebBrowser控件。
您可以在此视频中看到WebBrowser控件的实际操作:
http://channel9.msdn.com/posts/AdamKinney/WPF-35-SP1-App-Model-with-Jennifer-Lee/
答案 1 :(得分:1)
无法访问DOM,所以我很害怕。如果这是你肯定需要的东西那么你最好的选择可能是从System.Windows.Forms嵌入WinForms WebBrowser控件。
<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>
答案 2 :(得分:0)
在HTML页面中使用<body onload="javascript:alert('hi its loaded. do what you want here');">
,例如 myhtmlpage.html 。
然后在WPF代码中使用框架XAML控件(<Frame Name="myWpfFrame" Source="http://myurl/myhtmlpage.html">
)。
此解决方案可以正常运行,假设您只想调用 一次 ,而 仅在 之后调用 页面已加载。
如果你想多次调用js,可以在需要的时候从代码中设置帧控件的source属性......如... myWpfFrame.Source = myWpfFrame.Source;