| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- (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
- \`\`\``;
- })();
|