Method
WebKit2WebViewevaluate_javascript
Declaration [src]
void
webkit_web_view_evaluate_javascript (
WebKitWebView* web_view,
const char* script,
gssize length,
const char* world_name,
const char* source_uri,
GCancellable* cancellable,
GAsyncReadyCallback callback,
gpointer user_data
)
Description [src]
Asynchronously evaluate script
in the script world with name world_name
of the main frame current context in web_view
.
If world_name
is NULL
, the default world is used. Any value that is not NULL
is a distinct world.
The source_uri
will be shown in exceptions and doesn’t affect the behavior of the script.
When not provided, the document URL is used.
Note that if WebKitSettings:enable-javascript
is FALSE
, this method will do nothing.
If you want to use this method but still prevent web content from executing its own
JavaScript, then use WebKitSettings:enable-javascript-markup
.
When the operation is finished, callback
will be called. You can then call
webkit_web_view_evaluate_javascript_finish()
to get the result of the operation.
This is an example of using webkit_web_view_evaluate_javascript()
with a script returning
a string:
static void
web_view_javascript_finished (GObject *object,
GAsyncResult *result,
gpointer user_data)
{
WebKitJavascriptResult *js_result;
JSCValue *value;
GError *error = NULL;
js_result = webkit_web_view_evaluate_javascript_finish (WEBKIT_WEB_VIEW (object), result, &error);
if (!js_result) {
g_warning ("Error running javascript: %s", error->message);
g_error_free (error);
return;
}
value = webkit_javascript_result_get_js_value (js_result);
if (jsc_value_is_string (value)) {
gchar *str_value = jsc_value_to_string (value);
JSCException *exception = jsc_context_get_exception (jsc_value_get_context (value));
if (exception)
g_warning ("Error running javascript: %s", jsc_exception_get_message (exception));
else
g_print ("Script result: %s\n", str_value);
g_free (str_value);
} else {
g_warning ("Error running javascript: unexpected return value");
}
webkit_javascript_result_unref (js_result);
}
static void
web_view_get_link_url (WebKitWebView *web_view,
const gchar *link_id)
{
gchar *script = g_strdup_printf ("window.document.getElementById('%s').href;", link_id);
webkit_web_view_evaluate_javascript (web_view, script, -1, NULL, NULL, NULL, web_view_javascript_finished, NULL);
g_free (script);
}
Available since: | 2.40 |
Parameters
script |
const char* |
The script to evaluate. |
|
The data is owned by the caller of the function. | |
The value is a NUL terminated UTF-8 string. | |
length |
gssize |
Length of |
|
world_name |
const char* |
The name of a |
|
The argument can be NULL . | |
The data is owned by the caller of the function. | |
The value is a NUL terminated UTF-8 string. | |
source_uri |
const char* |
The source URI. |
|
The argument can be NULL . | |
The data is owned by the caller of the function. | |
The value is a NUL terminated UTF-8 string. | |
cancellable |
GCancellable |
A |
|
The argument can be NULL . | |
The data is owned by the caller of the function. | |
callback |
GAsyncReadyCallback |
A |
|
The argument can be NULL . | |
user_data |
gpointer |
The data to pass to callback function. |
|
The argument can be NULL . | |
The data is owned by the caller of the function. |