VC中调用JS函数失败是怎么回事?

qq_36198926 2017-02-03 09:29:23
在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
函数的方法有问题?帖子有点啰嗦,请各位大神帮忙解决,小弟感激不敬
...全文
1656 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
controstr 2018-02-07
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/392080839 这里有你想要的
qq_36198926 2017-02-06
  • 打赏
  • 举报
回复
我已经解决了,谢谢您
赵4老师 2017-02-06
  • 打赏
  • 举报
回复
搜“VC与JavaScript交互(一)”

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧