WPF - Fehler beim Aufruf einer javascript-Funktion - Unbekannte Namen. (Ausnahme von HRESULT: 0x80020006 (DISP_E_UNKNOWNNAME))
Ich bin mit "WebBroswer" in meiner wpf-Anwendung zu Rendern Google map. Also ich rufe Pan(x, y), JavaScript-Methode mit einigen Parametern mit meinem c# - code.
Aber ich bekomme die folgende Fehlermeldung.
Unbekannte Namen. (Ausnahme von HRESULT: 0x80020006 (DISP_E_UNKNOWNNAME))
Meine Window2.der xaml-Datei:
<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>
Meine Window2.xaml.cs-Datei:
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);
}
}
}
Meine HTML-Seite:
<html>
<head>
<title></title>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var map;
var latlng;
var lat;
var lng;
var zoom;
function Init() {
lat = 40.632915;
lng = -8.68929;
zoom = 18
latlng = new google.maps.LatLng(lat, lng);
var options = {
zoom: 18,
center: latlng,
mapTypeId: google.maps.MapTypeId.SATELLITE
};
map = new google.maps.Map(document.getElementById("map_canvas"), options);
}
function Pan(x, y) {
try {
lat = x;
lng = y;
map.panTo(new google.maps.LatLng(lat, lng));
}
catch (ex) {
window.alert("Pan:Error");
}
}
</script>
</head>
<body onload="Init()">
<div id="map_canvas" style="width: 100%; height: 100%">
</div>
</body>
</html>
- Sie können den Aufruf der
Pan
Funktion, bevor es geladen wird. Werfen Sie einen Blick auf diese F: stackoverflow.com/questions/12641771/webbrowser-invokescript - Ich habe gelesen, die post, Sie sagte zu implementieren, die LoadCompleted-event-handler und rufen Sie dann Ihr Skript. Können Sie mir einige Idee, wie das umzusetzen, LoadCompleted-event-handler in wpf.
- Ich denke, der einfachste Weg ist die Suche nach der Registerkarte "Ereignisse", wenn Sie klicken Sie auf Ihren WebBrowser auf die Registerkarte "design" in VS.
- Du hast Recht. Ich habe das problem gelöst. Danke für den replay.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, ich hab das problem. Ich versuche zu nennen, die JavaScript-Funktion ohne laden der HTML-Seite. Also ich habe zum ersten mal geladen wird die html-Seite und rief dann die JavaScript-Funktion und seine Arbeit für mich.
So, ich habe meine geänderte code als unten und es funktioniert Prima :-
Ist es besser, bewegen Sie den JavaScript-aufrufen des Dokuments geladen Veranstaltung.