如何在WebBrowser实例中的WPF和JavaScript之间进行通信?

时间:2012-08-21 10:30:12

标签: c# javascript wpf browser communicate

我有一个带有嵌入式浏览器(WebBrowser)和一些JavaScript的C#/ WPF应用程序。他们如何在两个方向上相互沟通?使用URL是否切实可行?

JS-> WPF:听取更改。 WPF-> JS:将网址更改为javascript:alert('hello');

有更好的方法吗?

2 个答案:

答案 0 :(得分:5)

知道有两个WebBrowser很重要。一个用于Windows窗体,一个用于WPF。下面的链接使用WPF。 http://www.dotnetfunda.com/articles/article840-working-with-webbrowser-in-wpf.aspx

答案 1 :(得分:4)

从C#调用JavaScript函数

object result = mWebBrowser.Document.InvokeScript("FunctionName", new String[] { Parameter1 });

// If the function succeed (my function return a boolean)
if (null == result || result.ToString().ToLower() == "false")
{
   // Code
}
这是你想要的吗?像这样你的c#代码调用你的javascript,它返回一个值

我的WPF Xaml:

<UserControl x:Class="MediaViewer.WebViewer"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
         xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms">
   <WindowsFormsHost>
      <wf:WebBrowser x:Name="mWebBrowser" />
   </WindowsFormsHost>
</UserControl>