WPF Frame control

2

У меня есть приложение WPF, содержащее элемент управления Frame. Элемент управления кадром отображает содержимое html. На странице html есть функция JavaScript, которую я хочу вызвать после того, как страница html загружается в Frame и из кода WPF? Есть ли способ, который я могу вызвать JavaScript-метод html-страницы, загруженной в элемент управления WPF-фреймом, и из кода WPF?

Теги:
wpf
wpf-controls

3 ответа

3

Вы не можете взаимодействовать с HTML внутри фрейма. Чтобы взаимодействовать с HTML, вы можете использовать WPF WebBrowser для управления .NET 3.5 SP1.

Вы можете видеть в элементе управления WebBrowser действие в этом видео:

http://channel9.msdn.com/posts/AdamKinney/WPF-35-SP1-App-Model-with-Jennifer-Lee/

1

Нет доступа к DOM, поэтому я не боюсь. Если вам что-то определенно необходимо, то лучше всего разместить встроенный элемент управления WinForms WebBrowser из 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

Используйте <body onload="javascript:alert('hi its loaded. do what you want here');"> на своей HTML-странице, скажем myhtmlpage.html.

Затем используйте код управления XAML (<Frame Name="myWpfFrame" Source="http://myurl/myhtmlpage.html">) в коде WPF.


Это решение будет работать, если вы хотите вызывать javascript только один раз и thats только после загружается страница HTML.

Если вы хотите вызывать js более одного раза, вы можете установить исходное свойство элемента управления кадра из кода как и когда вам нужно... как в. myWpfFrame.Source = myWpfFrame.Source;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню