在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
函式的方法有問題?帖子有點啰嗦,請各位大神幫忙解決,小弟感激不敬
uj5u.com熱心網友回復:
搜“VC與JavaScript互動(一)”uj5u.com熱心網友回復:
我已經解決了,謝謝您uj5u.com熱心網友回復:
http://bbs.csdn.net/topics/392080839這里有你想要的
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/75366.html
標籤:HTML/XML
