static gint luaH_webview_eval_js(lua_State *L) { WebKitWebFrame *frame = NULL; widget_t *w = luaH_checkwidget(L, 1); WebKitWebView *view = WEBKIT_WEB_VIEW(g_object_get_data(G_OBJECT(w->widget), "webview")); const gchar *script = luaL_checkstring(L, 2); const gchar *filename = luaL_checkstring(L, 3); /* Check if js should be run on currently focused frame */ if (lua_gettop(L) >= 4) { if (lua_islightuserdata(L, 4)) { frame = lua_touserdata(L, 4); } else if (lua_toboolean(L, 4)) { frame = webkit_web_view_get_focused_frame(view); } } /* Fall back on main frame */ if (!frame) frame = webkit_web_view_get_main_frame(WEBKIT_WEB_VIEW(view)); /* evaluate javascript script and push return result onto lua stack */ const gchar *result = webview_eval_js(frame, script, filename); lua_pushstring(L, result); return 1; }
static gint luaH_webview_eval_js(lua_State *L) { widget_t *w = luaH_checkudata(L, 1, &widget_class); WebKitWebView *view = WEBKIT_WEB_VIEW(g_object_get_data(G_OBJECT(w->widget), "webview")); const gchar *script = luaL_checkstring(L, 2); const gchar *filename = luaL_checkstring(L, 3); /* evaluate javascript script and push return result onto lua stack */ const gchar *result = webview_eval_js(view, script, filename); lua_pushstring(L, result); return 1; }