C++ webkit调用javascript

要在c++代码中调用Javascript函数,首先要做的是得到需要调用的Javascript函数的引用。

第一步:得到定义了该函数的Javascript context。 WinLaunche我没有试过,在GtkLauncher中,我采用的方法如下:

frame = webkit_web_view_get_main_frame (web_view);
context = webkit_web_frame_get_global_context(frame);

 WinLauncher应该也是类似的。

第二步:到这个context的全局对象global object,假定你定义的Javascript函数是全局的

JSObjectRef globalObject = JSContextGetGlobalObject(context);

得到这个全局对象之后,需要一个包含待调用的全局函数名的js字符引用对象 JSStringRef 。假定 Javascript函数my_function声明如下:

function my_function(a,b)
{

//do something

alert(a+b);

}

第三步:得到Javascript函数“my_function”的引用

首先创建一个字符串my_function:

    JSStringRef     myFunctionName = JSStringCreateWithUTF8CString("my_function");
然后用"my_function"这个函数名称从全局对象的属性中得到这个函数的引用functionObject。
JSObjectRef functionObject = (JSObjectRef)JSObjectGetProperty(context, globalObject, myFunctionName, NULL);

第四步:调用javascript函数

下面的示例中,假设全局javascript函数my_function包含两个数值类型的参数:

JSValueRef  arguments[2];
JSValueRef result;
int num_arguments = 2;
arguments[0] = JSValueMakeNumber(context, 1.0);
arguments[1] = JSValueMakeNumber(context, 3.14);

result = JSObjectCallAsFunction(context, functionObject, globalObject, num_arguments, arguments, NULL);

写好之后,编译GtkLauncher,命令如下:gcc `pkg-config --cflags --libs webkit-1.0 gtk+-2.0` main.c -s -o GtkLauncher

启动Gtklancher,调用javascript函数my_function,在alert提示框中,显示4.14.



  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值