aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--examples/config/config1
-rw-r--r--examples/data/scripts/go_input.js27
-rwxr-xr-xexamples/data/scripts/go_input.sh20
3 files changed, 48 insertions, 0 deletions
diff --git a/examples/config/config b/examples/config/config
index 3ab778a..5617e2e 100644
--- a/examples/config/config
+++ b/examples/config/config
@@ -325,6 +325,7 @@ set follow_hint_keys = 0123456789
#set follow_hint_keys = asdfghjkl;
#set follow_hint_keys = thsnd-rcgmvwb/;789aefijkopquxyz234
@cbind fl* = spawn @scripts_dir/follow.sh "%s"
+@cbind gi = spawn @scripts_dir/go_input.sh
# --- Form filler binds ---
# This script allows you to configure (per domain) values to fill in form
diff --git a/examples/data/scripts/go_input.js b/examples/data/scripts/go_input.js
new file mode 100644
index 0000000..557671f
--- /dev/null
+++ b/examples/data/scripts/go_input.js
@@ -0,0 +1,27 @@
+var elements = document.querySelectorAll("textarea, input" + [
+ ":not([type='button'])",
+ ":not([type='checkbox'])",
+ ":not([type='hidden'])",
+ ":not([type='image'])",
+ ":not([type='radio'])",
+ ":not([type='reset'])",
+ ":not([type='submit'])"].join(""));
+function gi() {
+ if (elements) {
+ var el, i = 0;
+ while((el = elements[i++])) {
+ var style=getComputedStyle(el, null);
+ if (style.display !== 'none' && style.visibility === 'visible') {
+ if (el.type === "file") {
+ el.click();
+ }
+ else {
+ el.focus();
+ }
+ return "XXXEMIT_FORM_ACTIVEXXX";
+ }
+ }
+ }
+}
+
+gi();
diff --git a/examples/data/scripts/go_input.sh b/examples/data/scripts/go_input.sh
new file mode 100755
index 0000000..c873dd8
--- /dev/null
+++ b/examples/data/scripts/go_input.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+config=$1;
+shift
+pid=$1;
+shift
+xid=$1;
+shift
+fifo=$1;
+shift
+socket=$1;
+shift
+url=$1;
+shift
+title=$1;
+shift
+
+case $(echo 'script @scripts_dir/go_input.js' | socat - unix-connect:$socket) in
+ *XXXEMIT_FORM_ACTIVEXXX*) echo 'event FORM_ACTIVE' | socat - unix-connect:$socket ;;
+esac