mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-08 00:38:39 +09:00
60 lines
1.6 KiB
JavaScript
60 lines
1.6 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
var KIFHelper = {
|
|
/**
|
|
* Determines whether an element with the given accessibility label exists.
|
|
* @return True if an element was found
|
|
*/
|
|
hasElementWithAccessibilityLabel: function (value) {
|
|
return this._getElementWithAccessibilityLabel(document.body, value) !== null;
|
|
},
|
|
|
|
_getElementWithAccessibilityLabel: function (el, value) {
|
|
if (el.textContent == value || el.title == value || el.value == value) {
|
|
return el;
|
|
}
|
|
|
|
for (var i = 0; i < el.children.length; i++) {
|
|
var found = this._getElementWithAccessibilityLabel(el.children[i], value);
|
|
if (found) {
|
|
return found;
|
|
}
|
|
}
|
|
|
|
return null;
|
|
},
|
|
|
|
/**
|
|
* Sets the text for an input element with the given name.
|
|
* @return True if successful
|
|
*/
|
|
enterTextIntoInputWithName: function (text, name) {
|
|
var inputs = document.getElementsByName(name);
|
|
if (inputs.length !== 1) {
|
|
return false;
|
|
}
|
|
|
|
var input = inputs[0];
|
|
if (input.tagName !== "INPUT") {
|
|
return false;
|
|
}
|
|
|
|
input.value = text;
|
|
return true;
|
|
},
|
|
|
|
/**
|
|
* Taps an element with the given accessibility label.
|
|
* @return True if successful
|
|
*/
|
|
tapElementWithAccessibilityLabel: function (label) {
|
|
var found = this._getElementWithAccessibilityLabel(document.body, label);
|
|
if (found) {
|
|
found.click();
|
|
return true;
|
|
}
|
|
return false;
|
|
},
|
|
};
|