|
(function () { |
|
const extractElementData = (el) => { |
|
const tag = el.tagName.toLowerCase(); |
|
if ( |
|
tag === "input" && |
|
el.name !== "DXScript" && |
|
el.name !== "DXMVCEditorsValues" && |
|
el.name !== "DXCss" |
|
) { |
|
return { |
|
type: "input", |
|
name: el.name, |
|
value: |
|
el.type === "checkbox" || el.type === "radio" |
|
? el.checked |
|
? el.value |
|
: null |
|
: el.value, |
|
}; |
|
} else if (tag === "select") { |
|
const selectedOption = el.querySelector("option:checked"); |
|
return { |
|
type: "select", |
|
name: el.name, |
|
value: selectedOption ? selectedOption.value : null, |
|
}; |
|
} else if (tag.startsWith("h") && el.textContent.trim()) { |
|
return { type: "header", tag, content: el.textContent.trim() }; |
|
} else if ( |
|
["label", "span", "p", "b", "strong"].includes(tag) && |
|
el.textContent.trim() |
|
) { |
|
return { type: tag, content: el.textContent.trim() }; |
|
} |
|
}; |
|
|
|
const getElementValues = (els) => |
|
Array.from(els).map(extractElementData).filter(Boolean); |
|
|
|
const getIframeInputValues = (iframe) => { |
|
try { |
|
const iframeDoc = iframe.contentWindow.document; |
|
return getElementValues( |
|
iframeDoc.querySelectorAll("input, select, header, label, span, p") |
|
); |
|
} catch (e) { |
|
console.error("Can't access iframe:", e); |
|
return []; |
|
} |
|
}; |
|
|
|
const inputValues = getElementValues( |
|
document.querySelectorAll("input, select, header, label, span, p") |
|
); |
|
const iframeInputValues = Array.from(document.querySelectorAll("iframe")).map( |
|
getIframeInputValues |
|
); |
|
|
|
return ` |
|
## input values\n |
|
\`\`\`json\n |
|
${JSON.stringify(inputValues)}\n |
|
\`\`\`\n |
|
## iframe input values\n |
|
\`\`\`json\n |
|
${JSON.stringify(iframeInputValues)}\n |
|
\`\`\``; |
|
})(); |
|
|