VC与JavaScript交互(三) --- CWebPage类调用javascript函数(给js函数传参,并取得返回值)
①需要一个别人写好的类CWebPage,将其对于的两个文件WebPage.h和WebPage.cpp添加到工程中。
②添加WebBrowser控件,在视图/对话框类的头文件中#include "webbrowser2.h",增加成员变量m_webBrowser,调用Navigate()函数加载一个html页面。
③在对话框或者视图的实现文件中,加入#include "WebPage.h",在按钮的响应函数中就可以调用javascript函数了,具体代码如下:
CWebPage web;
web.SetDocument(m_webBrowser.GetDocument());
CComVariant varResult; //存放返回值 //注意:参数要用字符串类型传递过去
web.CallJScript("TansTo", m_latitude, m_longitude, &varResult); //调用JS中的函数TansTo(),并传递2个参数(纬度,经度),将返回值写入varResult
if( varResult. dblVal == 122.211 ) // double型对应dblVal,整形对应intVal
MessageBox(“成功从js中取得变量值”);
④在html文件的script标签中定义对应的函数,具体代码如下:
<script type="text/javascript">
function TansTo(lat, lng)//转到指定位置,有两个参数,纬度和经度
{
map.panTo(new GLatLng(lat, lng));//谷歌地图的API,跳转到坐标指定地点
return 122.211 ;//返回一个double型的值给varResult
}
</script>
注意:
(1)上面javascript中panTo()函数是google map API中的一个函数,可根据不同需要自定义相关函数。
(2)以上实现不用管CWebPage类起什么作用,直接用就行,如果想详细了解内容,请搜索有关“COM组件自动化”“IDispatch接口”的文章。
VC与JavaScript交互(三) --- CWebPage类调用javascript函数(给js函数传参,并取得返回值)的更多相关文章
- VC/MFC中通过CWebPage类调用javascript函数(给js函数传参,并取得返回值)
转自:http://www.cnblogs.com/javaexam2/archive/2012/07/14/2632959.html ①需要一个别人写好的类CWebPage,将其对于的两个文件Web ...
- HttpClient调用doGet、doPost、JSON传参及获得返回值
调用 doPost:map传参 Map<String,Object> map = new HashMap<>(); map.put("test"," ...
- Android Webview 和Javascript交互,实现Android和JavaScript相互调用
在Android的开发过程中.遇到一个新需求.那就是让Java代码和Javascript代码进行交互.在IOS中实现起来很麻烦.而在Android中相对来说容易多了.Android对这种交互进行了很好 ...
- 我自己的Javascript 库,封装了一些常用函数 Kingwell.js
我自己的Javascript 库,封装了一些常用函数 Kingwell.js 博客分类: Javascript javascript 库javascript库 现在Javascript库海量,流行的 ...
- x64汇编第三讲,64位调用约定与函数传参.
目录 x64汇编第三讲,64位调用约定与函数传参. 一丶复习X86传参 二丶x64汇编 2.1汇编详解 x64汇编第三讲,64位调用约定与函数传参. 一丶复习X86传参 在x86下我们汇编的传参如下: ...
- Java调用动态链接库so文件(传参以及处理返回值问题)
刚来到公司,屁股还没坐稳,老板把我叫到办公室,就让我做一个小程序.我瞬间懵逼了.对小程序一窍不通,还好通过学习小程序视频,两天的时间就做了一个云开发的小程序,但是领导不想核心的代码被别人看到,给了我一 ...
- Python类三种方法,函数传参,类与实例变量(一)
1 Python的函数传递: 首先所有的变量都可以理解为内存中一个对象的'引用' a = 1 def func(a): a = 2 func(a) print(a) # 1 a = 1 def fun ...
- Cortex-M3动态加载三(模块调用系统函数)
在我的arm动态加载实验中需要解决一个模块调用系统函数的问题,可以使用以下的一个方法.将系统函数固定在某一段地址空间,然后导出这一块的符号表到符号文件中,要记载的模块link的时候使用这个符号表文件, ...
- C++ 类中有虚函数(虚函数表)时 内存分布
虚函数表 对C++ 了解的人都应该知道虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的.简称为V-Table.在这个表中,主是要一个类的虚函数的地址表 ...
随机推荐
- TFS Build Error: CSC : fatal error CS0042: Unexpected error creating debug information file 'xxxx.PDB'
CSC : fatal error CS0042: Unexpected error creating debug information file 'xxxx.PDB' -- 'c:\Builds\ ...
- 最大熵的Java实现
这是一个最大熵的简明Java实现,提供训练与预测接口.训练采用GIS训练算法,附带示例训练集.本文旨在介绍最大熵的原理.分类和实现,不涉及公式推导或其他训练算法,请放心食用. 最大熵理论 简介 最大熵 ...
- SOA_环境安装系列3_Oracle Weblogic安装和环境搭建(案例)
2014-01-03 Created By BaoXinjian
- Workflow_工作流发送Document和Form链接的实现(案例)
2014-06-01 Created By BaoXinjian
- kuangbin RMQ
这是kuangbin的RMQ,一维的,代码很简洁,附上: //kuangbin templet(查询最大值) 一维 //若想查最小,看提示更改 + ; ];//第二维是范围,即2^20约等于100万 ...
- c++学习-数组
int a[10]; //是个元素,在windows下回报错,linux会输出一个随机数 int a[10]={1,2}; //初始化,其他的为0 数组越界: 为了调高效率, 编译器不会对数组越界做检 ...
- 衔接UI线程和管理后台工作线程的类(多线程、异步调用)
一个不错的UI多线程操作类 http://www.cnblogs.com/net66/archive/2005/08/03/206132.html
- 处理日期时间NSDate
获取当前日期时间的代码如下: NSDate *dateToDay = [NSDate date]; NSDateFormatter *df = [[NSDateFormatter alloc] ini ...
- arm-linux-gcc 常用参数讲解 gcc编译器使用方法
我们需要编译出运行在ARM平台上的代码,所使用的交叉编译器为 arm-linux-gcc.下面将arm-linux-gcc编译工具的一些常用命令参数介绍给大家.在此之前首先介绍下编译器的工作过程,在使 ...
- Java中的观察者模式
让一个类能够被观察,则该类需要继承java.util.Observable类. 要让一个类成为观察者,则该类需要实现java.util.Observable接口. 让观察者和被观察者建立联系通过Obs ...