tAdd eval() function for executing Javascript. Handy for keybindings. - surf -… | |
git clone git://src.adamsgaard.dk/surf | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 2e62372969239285705504187b0211039b5ae619 | |
parent 3b104416d350f25db098d6c8dc9ddff11311e065 | |
Author: Troels Henriksen <[email protected]> | |
Date: Thu, 3 Nov 2011 14:09:19 +0100 | |
Add eval() function for executing Javascript. Handy for keybindings. | |
Diffstat: | |
M surf.c | 26 +++++++++++++++++++++----- | |
1 file changed, 21 insertions(+), 5 deletions(-) | |
--- | |
diff --git a/surf.c b/surf.c | |
t@@ -102,6 +102,7 @@ static void setup(void); | |
static void sigchld(int unused); | |
static void source(Client *c, const Arg *arg); | |
static void spawn(Client *c, const Arg *arg); | |
+static void eval(Client *c, const Arg *arg); | |
static void stop(Client *c, const Arg *arg); | |
static void titlechange(WebKitWebView *v, WebKitWebFrame* frame, const char* t… | |
static void update(Client *c); | |
t@@ -144,15 +145,24 @@ cleanup(void) { | |
} | |
void | |
+evalscript(WebKitWebFrame *frame, JSContextRef js, char *script, char* scriptn… | |
+ JSStringRef jsscript, jsscriptname; | |
+ JSValueRef exception = NULL; | |
+ | |
+ jsscript = JSStringCreateWithUTF8CString(script); | |
+ jsscriptname = JSStringCreateWithUTF8CString(scriptname); | |
+ JSEvaluateScript(js, jsscript, JSContextGetGlobalObject(js), jsscriptn… | |
+ JSStringRelease(jsscript); | |
+ JSStringRelease(jsscriptname); | |
+} | |
+ | |
+void | |
runscript(WebKitWebFrame *frame, JSContextRef js) { | |
- JSStringRef jsscript; | |
char *script; | |
- JSValueRef exception = NULL; | |
GError *error; | |
- | |
+ | |
if(g_file_get_contents(scriptfile, &script, NULL, &error)) { | |
- jsscript = JSStringCreateWithUTF8CString(script); | |
- JSEvaluateScript(js, jsscript, JSContextGetGlobalObject(js), N… | |
+ evalscript(frame, webkit_web_frame_get_global_context(frame), … | |
} | |
} | |
t@@ -740,6 +750,12 @@ spawn(Client *c, const Arg *arg) { | |
} | |
void | |
+eval(Client *c, const Arg *arg) { | |
+ WebKitWebFrame *frame = webkit_web_view_get_main_frame(c->view); | |
+ evalscript(frame, webkit_web_frame_get_global_context(frame), ((char *… | |
+} | |
+ | |
+void | |
stop(Client *c, const Arg *arg) { | |
webkit_web_view_stop_loading(c->view); | |
} |