프레임 컨트롤이 포함 된 WPF 응용 프로그램이 있습니다. 프레임 컨트롤은 html 콘텐츠를 표시합니다. html 페이지에는 프레임과 WPF 코드에서 HTML 페이지가로드 된 후 호출 할 JavaScript 함수가 들어 있습니다. WPF 프레임 컨트롤과 WPF 코드 내에서로드 된 HTML 페이지의 JavaScript 메서드를 호출 할 수있는 방법이 있습니까?WPF 프레임 컨트롤
2
A
답변
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>
3
프레임 내부의 HTML과 상호 작용할 수 없습니다. HTML과 상호 작용하려면 .NET 3.5 SP1의 WPF WebBrowser 컨트롤을 사용할 수 있습니다.
이 비디오에 행동에 WebBrowser 컨트롤에서 볼 수 있습니다 HTML 페이지에서
http://channel9.msdn.com/posts/AdamKinney/WPF-35-SP1-App-Model-with-Jennifer-Lee/
0
사용 <body onload="javascript:alert('hi its loaded. do what you want here');">
는 myhtmlpage.html에게 말한다.
그런 다음 WPF 코드에서 프레임 XAML 컨트롤 (<Frame Name="myWpfFrame" Source="http://myurl/myhtmlpage.html">
)을 사용하십시오.
이 솔루션을 사용하면 HTML 페이지가로드 자바 스크립트 한 번만하고 그게 전부 만 후 전화를 걸 가정 작동합니다. 당신이 한 번 이상 JS 더 호출 할 경우
에서와 같이 ... 당신은 아마도 같은 코드에서 프레임 컨트롤의 소스 속성을 설정할 수 있습니다 당신이 필요로 할 때 .. myWpfFrame.Source = myWpfFrame.Source;