我正在尝试从 C++ 代码中调用一些 jQuery 函数。我所做的是将整个 jQuery 库复制为一个字符串,并使用 jsc_context_evaluate() 来访问所有 jQuery 方法。
这是一个带有字符串的非特定精简版本,它工作正常:
JSCValue* jsVar = jsc_context_evaluate(jsCtx, "$('some-div')");
jsc_value_object_invoke_method(jsVar, "html", G_TYPE_STRING, "foo", G_TYPE_NONE);
这会将“some-div”的内容更改为“foo”。(我知道 'some-div' 应该有一个 '.' 或 '#' 但它只是为了表示)
当我尝试使用一个对象时,该功能不起作用。
JSCValue* jsVar = jsc_context_evaluate(jsCtx, "$('some-div')");
JSCValue* jsDiv = jsc_context_evaluate(jsCtx, "$('some-other-div')");
jsc_value_object_invoke_method(jsVar, "html", G_TYPE_OBJECT, jsDiv, G_TYPE_NONE);
而不是 'some-div' 得到 'some-other-div' 的内容,什么都没有发生。当我将返回值打印...invoke_method()
为字符串时,jsc_value_to_string()
我得到未定义。我用其他 jQuery 方法尝试过,add
但结果相同,函数返回 undefined 并且没有任何变化。