c# form与js交互——webBrowser1.Document.InvokeScript()

最近在做form窗口调用百度地图api的一个小程序。

让这个webBrowser1.Document.InvokeScript()函数纠结了我半天,因为js也是刚刚接触,所以不知道问题出在哪,在这跟大家分享一下,免得走很多弯路:

首选我在dw 中谢啦 一个 function:

//公交站点对点的搜索函数,输入俩字符串来搜索,并在网页中显示。

//方法体是百度地图API DEMO中的,我修改了一下,可以用,大家要详细了解就去百度地图开发中心看吧。

//我这主要讲一下c#调用js内的函数

function bus_p2pSearch(start,ending)

var transit = new BMap.TransitRoute(map, {renderOptions: {map: map}})
var start;
var ending;
transit.search(start,ending);
}

下面是 c# 中的button_click事件:

 private void button_bus_Click(object sender, EventArgs e)
        {
            string s1 = textBox_bus_start.Text.ToString() ;
            string s2 = textBox_bus_end.Text.ToString();
            Object[] objArray = new Object[2];
            objArray[0] = s1 ;
            objArray[1] = s2 ;
            webBrowser1.Document.InvokeScript("bus_p2pSearch", objArray); 
            
        }  

首先我们要明确的是webBrowser1.Document.InvokeScript()这个函数,括号内有调用function的名字以及要传入的参数。

参数只能有一个,如果我们需要传入多个参数,则需要将多个参数写成 一个object类型的数组,就是输入多少个参数都行,只要是function所需的参数,对应的数据类型也是对的就可以。当然,如果function所需的参数都是相同的参数类型,也可以写成相对应的数组,比如int[ ] 0 char[].........

还有一点要注意的是webBrowser1.Document.InvokeScript()内的function的名字后面不能带()。如果带括号就不能运行js 函数,我试过。


你可能感兴趣的:(初学者,c#,winform,webbrowser,javascript,map)