【问题标题】:I want to call CallBack function of javascript to C#我想将javascript的回调函数调用到C#
【发布时间】:2016-12-01 01:02:21
【问题描述】:

当我插入地址时,程序会返回 GPS 值。

代码:

var callback = new function func1(status, result) {

    if (status === daum.maps.services.Status.OK) {

           var coords = new daum.maps.LatLng(result.addr[0].lat, result.addr[0].lng);

           var marker = new daum.maps.Marker({
              map: map,
              position: coords
           });
           var infowindow = new daum.maps.InfoWindow({
              content: '<div style="width:150px;text-align:center;padding:6px 0;">우리회사</div>'
           });
           infowindow.open(map, marker);

           map.setCenter(coords);
    }
}
geocoder.addr2coord(loc, callback);

和 C#:

 try
        {
            string url = "D:/Documents/Visual Studio 2015/Projects/WindowsFormsApplication6/WindowsFormsApplication6\\DaumMapAPI.html";
            webBrowser1.Document.InvokeScript("geocoder.addr2coord", new object[] { "강원도 원주시 학성길 121", ??? });
            webBrowser1.Navigate(url);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }

我不知道'???'将被插入。

请帮帮我!

【问题讨论】:

    标签: javascript c# winforms invokescript


    【解决方案1】:

    看着你的 Javascript,在我看来,

    geocoder.addr2coord(loc, callback);
    

    在页面加载时立即调用。我认为你想要的是另一个包装函数,然后你可以像这样从 C# 调用它(注意新的 search() 函数:

    var callback = new function func1(status, result) {
        if (status === daum.maps.services.Status.OK) {
    
           var coords = new daum.maps.LatLng(result.addr[0].lat, result.addr[0].lng);
    
           var marker = new daum.maps.Marker({
              map: map,
              position: coords
           });
           var infowindow = new daum.maps.InfoWindow({
              content: '<div style="width:150px;text-align:center;padding:6px 0;">우리회사</div>'
           });
           infowindow.open(map, marker);
    
           map.setCenter(coords);
        }
    }
    function search(loc) {
        geocoder.addr2coord(loc, callback);
    }
    

    然后在 C# 中你可以做你所做的,但是用新的search 函数代替。

    【讨论】:

    • 感谢您的评论。但是我的程序仍然返回 NullReferenceException...
    • 啊,我的印象是错误在 javascript 中,但你是说错误在 C# 中?您确定“webBrowser1”变量已正确实例化吗?
    • 感谢您的快速评论,我不知道 webbrowser1 变量是否被实例化。
    • webBrowser1.Document.InvokeScript("search", new object[] { "강원도 원주시 학성길 121" });这是一个新代码。
    • 你能检查一下 webBrowser1 == null 还是 webBrowser1.Document == null 吗?如果是这种情况,您的问题与 Javascript 无关
    猜你喜欢
    • 2012-11-29
    • 2022-01-03
    • 2018-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-24
    • 1970-01-01
    相关资源
    最近更新 更多