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.
InformationsquelleAutor Mahesh | 2013-01-24
Schreibe einen Kommentar