summaryrefslogtreecommitdiff
path: root/qutebrowser/javascript/webelem.js
diff options
context:
space:
mode:
Diffstat (limited to 'qutebrowser/javascript/webelem.js')
-rw-r--r--qutebrowser/javascript/webelem.js17
1 files changed, 15 insertions, 2 deletions
diff --git a/qutebrowser/javascript/webelem.js b/qutebrowser/javascript/webelem.js
index b5fd936b2..61b537504 100644
--- a/qutebrowser/javascript/webelem.js
+++ b/qutebrowser/javascript/webelem.js
@@ -66,13 +66,14 @@ window._qutebrowser.webelem = (function() {
const out = {
"id": id,
- "value": elem.value,
- "outer_xml": elem.outerHTML,
"rects": [], // Gets filled up later
"caret_position": caret_position,
};
+ // Deal with various fun things which can happen in form elements
// https://github.com/qutebrowser/qutebrowser/issues/2569
+ // https://github.com/qutebrowser/qutebrowser/issues/2877
+ // https://stackoverflow.com/q/22942689/2085149
if (typeof elem.tagName === "string") {
out.tag_name = elem.tagName;
} else if (typeof elem.nodeName === "string") {
@@ -88,6 +89,18 @@ window._qutebrowser.webelem = (function() {
out.class_name = "";
}
+ if (typeof elem.value === "string" || typeof elem.value === "number") {
+ out.value = elem.value;
+ } else {
+ out.value = "";
+ }
+
+ if (typeof elem.outerHTML === "string") {
+ out.outer_xml = elem.outerHTML;
+ } else {
+ out.outer_xml = "";
+ }
+
if (typeof elem.textContent === "string") {
out.text = elem.textContent;
} else if (typeof elem.text === "string") {