[英]How to access a JSCValue Object's properties
使用以下代碼:
#include <webkit2/webkit-web-extension>
/* Skipping through a lot of code */
{
JSCValue* result = jsc_context_evalutate(jsCtx, "document.getElementsByTagName('body')", -1);
std::cout << jsc_value_to_string(jsc_value_object_get_property_at_index(result, 0)) << "\n";
if (jsc_value_object_is_instance_of(result, "HTMLBodyElement"))
std::cout << "Instance of HTMLBodyElement\n";
}
我打印了[object HTMLBodyElement]
但沒有打印Instance of HTMLBodyElement
。 我對此有幾個問題。
jsc_value_object_enumerate_properties()
時,我在 memory 中只有一個地址。 我的目標是訪問 CSS、標簽、ID/類、父元素和子元素。 我不知道如何將 char** 轉換為可用信息。按順序回答您的問題:
查看API 文檔,目前似乎不可能。 jsc-glib API 相當有限。
因為result
是包含 object 的數組,所以在 JavaScript 術語中,您正在評估[body] instanceof HTMLBodyElement
而不是body instanceof HTMLBodyElement
。
沒有看到你的代碼就不可能確定,但很可能你在數組上調用jsc_value_object_enumerate_properties()
,並且該數組只有一個可枚舉屬性,即索引 0。如果你在 body 元素上調用它,那么你應該能夠通過將 function 返回的字符串數組中的每個字符串傳遞給jsc_value_object_get_property()
來獲取每個屬性的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.