safe access tagName of form element
This commit is contained in:
Yanzhen Yu
2026-04-01 12:00:00 +08:00
parent 93be66e22a
commit 3a946702c2
3 changed files with 75 additions and 66 deletions

View File

@@ -18,8 +18,12 @@ function genId(): number {
return _id++;
}
function getValidTagName(tagName: string): string {
const processedTagName = tagName.toLowerCase().trim();
function getValidTagName(element: HTMLElement): string {
if (element instanceof HTMLFormElement) {
return 'form';
}
const processedTagName = element.tagName.toLowerCase().trim();
if (tagNameRegex.test(processedTagName)) {
// if the tag name is odd and we cannot extract
@@ -223,7 +227,7 @@ function serializeNode(
blockClass,
blockSelector,
);
const tagName = getValidTagName((n as HTMLElement).tagName);
const tagName = getValidTagName(n as HTMLElement);
let attributes: attributes = {};
for (const { name, value } of Array.from((n as HTMLElement).attributes)) {
attributes[name] = transformAttribute(doc, name, value);