aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortoasted-nutbread <toasted-nutbread@users.noreply.github.com>2021-02-28 13:26:23 -0500
committerGitHub <noreply@github.com>2021-02-28 13:26:23 -0500
commitfce2c51709852eea9dc14efe937537383e9c418d (patch)
tree4cb5ec9be9e424fd8f31c4a56afc63502c7afa39
parentf2d2ba0d25b6276d60001077573e30b60701a2d4 (diff)
Add support for scanning the selected value of <select> elements (#1461)
-rw-r--r--ext/js/dom/document-util.js1
-rw-r--r--ext/js/dom/text-source-element.js7
2 files changed, 8 insertions, 0 deletions
diff --git a/ext/js/dom/document-util.js b/ext/js/dom/document-util.js
index 80081aca..393ef294 100644
--- a/ext/js/dom/document-util.js
+++ b/ext/js/dom/document-util.js
@@ -36,6 +36,7 @@ class DocumentUtil {
switch (element.nodeName.toUpperCase()) {
case 'IMG':
case 'BUTTON':
+ case 'SELECT':
return new TextSourceElement(element);
case 'INPUT':
imposterSourceElement = element;
diff --git a/ext/js/dom/text-source-element.js b/ext/js/dom/text-source-element.js
index 45186636..1576bd5e 100644
--- a/ext/js/dom/text-source-element.js
+++ b/ext/js/dom/text-source-element.js
@@ -126,6 +126,13 @@ class TextSourceElement {
case 'IMG':
content = element.getAttribute('alt') || '';
break;
+ case 'SELECT':
+ {
+ const {selectedIndex, options} = element;
+ const option = (selectedIndex >= 0 && selectedIndex < options.length ? options[selectedIndex] : null);
+ content = (option !== null ? option.textContent : '');
+ }
+ break;
default:
content = `${element.value}`;
break;