VC中调用JS函数失败是怎么回事?
在html文件中有一个JS函数Add(用来测试用的程序)
<!doctype html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>Baidu Map</title>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2&services=true">
<!-- add baidu map api -->
</script>
</head>
<body>
<div id="container" style="width: 1000px; height: 700px;">
</div>
</body>
</html>
<script type="text/javascript">
var map = new BMap.Map("container"); // new Map
var point = new BMap.Point(116.0123,40.1234); // Location, (经度, 纬度)
map.centerAndZoom(point, 10); // show Map
var mark = new BMap.Marker(point);
map.addOverlay(mark);
//var info = new BMap.InfoWindow(坐标:);
map.addEventListener("click",
function (e)
{
alert(e.point.lng + " "+ e.point.lat);
}
);
//自定义JS函数,实现定位并实时标定
// 添加缩放功能
map.enableScrollWheelZoom();
map.enableKeyboard();
map.addControl(new BMap.OverviewMapControl()); //为地图添加鹰眼控件
//map.addControl(new BMap.OverviewMapControl({ isOpen: 1 })); //开启鹰眼
map.addControl(new BMap.NavigationControl()); //为地图添加鱼骨(默认)
// map.addControl(new BMap.ScaleControl()); //为地图添加比例尺
map.addControl(new BMap.ScaleControl({ offset: new BMap.Size(5, 40) })); //添加一个带上偏移量的比例尺
map.addControl(new BMap.MapTypeControl()); //为地图添加2D3D切换控件
map.setCurrentCity("北京"); // 仅当设置城市信息时,MapTypeControl的切换功能才能可用
</script>
<script type="text/javascript">
function TansTo(lat, lng)//转到指定位置,有两个参数,纬度和经度
{
//alert(lng);//测试参数是否传递过来
//var longi = parseFloat(lng);//后来才知道,不用类型转换,javascript可以自动转换
//var lati = parseFloat(lat);
map.panTo(new GLatLng(lat, lng));
return 1;
}
<script type="text/javascript">
function Add(value1, value2) {
return value1 + value2;
}
</script>
在VC中调用函数Add:
CWebPage web;
web.SetDocument(m_webBrowser.GetDocument());
CComVariant varResult; //存放返回值
web.CallJScript("Add","10","20",&varResult);//调用JS函数.函数名是TranTo,参数是double,double
if(varResult.intVal==30)
{
MessageBox("ADD调用成功!");
}
else
{
MessageBox("Add调用失败!");
}
其中CallJScript在CWebPage中的函数声明是:
bool CWebPage::CallJScript(const CString strFunc,const CString strArg1,const CString strArg2,CComVariant* pVarResult)
{
CStringArray paramArray;
paramArray.Add(strArg1);
paramArray.Add(strArg2);
return CallJScript(strFunc,paramArray,pVarResult);
}
我的问题是:问什么我在VC中通过CallJScript调用Add函数,传递的参数分别是10,20
web.CallJScript("Add","10","20",&varResult),返回的结果不正确呢?是因为我的HTML中的JS函数写的有问题还是VC中调用JS
函数的方法有问题?帖子有点啰嗦,请各位大神帮忙解决,小弟感激不敬