मैं Google मानचित्र प्रस्तुत करने के लिए अपने wpf एप्लिकेशन में "वेबलिस्टर" का उपयोग कर रहा हूं। तो मैं पैन (एक्स, वाई) जावास्क्रिप्ट विधि को कुछ पैरामीटर के साथ कॉल कर रहा हूं जो मेरा सी # कोड बनाता है।WPF - जावास्क्रिप्ट फ़ंक्शन को कॉल करते समय त्रुटि - अज्ञात नाम। (HRESULT से अपवाद: 0x80020006 (DISP_E_UNKNOWNNAME))
लेकिन मुझे यह त्रुटि नीचे मिल रही है।
अज्ञात नाम। (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>
मेरे 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);
}
}
}
मेरे एचटीएमएल पृष्ठ:
<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>
आप लोड होने से पहले 'पैन' फ़ंक्शन को कॉल कर सकते हैं। इस क्यू पर एक नज़र डालें: http://stackoverflow.com/questions/12641771/webbrowser-invokescript – Sam
मैंने पोस्ट पढ़ लिया है, उन्होंने लोडकंपलेटेड ईवेंट हैंडलर को लागू करने के लिए कहा और फिर अपनी स्क्रिप्ट का आह्वान किया। क्या आप मुझे कुछ विचार दे सकते हैं, wpf में LoadCompleted ईवेंट हैंडलर को कैसे कार्यान्वित करें। – Mahesh
मुझे लगता है कि जब आप VS में डिज़ाइन टैब पर अपने वेब ब्राउजर पर क्लिक करते हैं तो ईवेंट टैब को देखना सबसे आसान तरीका है। – Sam