我在我的wpf应用程序中使用"WebBroswer"来呈现Google地图.所以我用我的c#代码调用一些参数的Pan(x,y)JavaScript方法.
但我得到以下错误.
名字不明.(来自HRESULT的异常:0x80020006(DISP_E_UNKNOWNNAME))
我的Window2.xaml文件:
<Window x:Class="Test.Window2"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window2" Height="300" Width="300">
<Grid>
<WebBrowser Name="mapBrowser" Margin="50" />
<Button Name="button1" VerticalAlignment="Bottom" Click="button1_Click">Button</Button>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
我的Window2.xaml.cs文件:
namespace Test
{
/// <summary>
/// Interaction logic for Window2.xaml
/// </summary>
public partial class Window2 : Window
{
public Window2()
{
InitializeComponent();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
Uri uri = new Uri(@"pack://application:,,,/HTMLPage1.htm");
Stream source = Application.GetContentStream(uri).Stream;
mapBrowser.NavigateToStream(source);
this.mapBrowser.InvokeScript("Pan", x, y);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的HTML页面:
<html>
<head>
<title></title>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<script …Run Code Online (Sandbox Code Playgroud) 基于此解决方案,我试图调用位于我的WebBrowser控件中的JavaScript函数.在.xaml这个样子的
<Grid>
<WebBrowser x:Name="browser"/>
</Grid>
Run Code Online (Sandbox Code Playgroud)
但这个代码都没有
public MainWindow()
{
InitializeComponent();
browser.NavigateToString("<html><script>function callMe() {alert('Hello');} document.myfunc = callMe;</script><body>Hello World</body></html>");
dynamic doc = browser.Document;
doc.myfunc();
}
Run Code Online (Sandbox Code Playgroud)
错误
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:''mshtml.HTMLDocumentClass'不包含'myfunc''的定义
也不是本规范
public MainWindow()
{
InitializeComponent();
browser.NavigateToString("<html><script>function callMe() {alert('Hallo');}</script><body>Hello World</body></html>");
browser.InvokeScript("callMe");
}
Run Code Online (Sandbox Code Playgroud)
错误
System.Runtime.InteropServices.COMException:'未知名称.(HRESULT异常:0x80020006(DISP_E_UNKNOWNNAME))'
做工作.
我错过了什么?