JSFiddle - React, Tailwind, and code Playground
by Haze32
JavaScript
javascript: (function () {
function selectDropdownItem(context, dataAttribute, itemIndex, callback) {
const input = context.querySelector(`[frsqa_fname="${dataAttribute}"]`)
if (!input) return
let nextElement = input.nextElementSibling
let arrowTrigger = null
while (nextElement) {
arrowTrigger = nextElement.querySelector(
"span > img.x-form-arrow-trigger",
)
if (arrowTrigger) break
nextElement = nextElement.nextElementSibling
}
if (!arrowTrigger) return
arrowTrigger.click()
const downEvent = new KeyboardEvent("keydown", {
key: "ArrowDown",
keyCode: 40,
bubbles: true,
})
const enterEvent = new KeyboardEvent("keydown", {
key: "Enter",
keyCode: 13,
bubbles: true,
})
setTimeout(() => {
input.focus()
for (let i = 0; i < itemIndex; i++) {
setTimeout(() => {
input.dispatchEvent(downEvent)
}, i * 20)
}
setTimeout(
() => {
input.dispatchEvent(enterEvent)
if (callback) callback()
},
itemIndex * 20 + 50,
)
}, 200)
}
function findFormContext() {
const contexts = [document]
const iframes = document.getElementsByTagName("iframe")
for (let i = 0; i < iframes.length; i++) {
try {
const iframeDoc =
iframes[i].contentDocument || iframes[i].contentWindow.document
if (iframeDoc) contexts.push(iframeDoc)
} catch (e) {}
}
for (const context of contexts) {
const serviceInput = context.querySelector('[frsqa_fname="Service"]')
if (serviceInput) {
selectDropdownItem(context, "Service", 73, () => {
selectDropdownItem(context, "Category", 8)
})
selectDropdownItem(context, "DPW_CallType", 8)
selectDropdownItem(context, "Location", 0)
selectDropdownItem(context, "Owner", 8)
return
}
}
}
findFormContext()
})()