我有一个带有嵌入式浏览器(WebBrowser)和一些JavaScript的C#/ WPF应用程序。他们如何在两个方向上相互沟通?使用URL是否切实可行?
JS-> WPF:听取更改。
WPF-> JS:将网址更改为javascript:alert('hello');
有更好的方法吗?
答案 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>