Merge pull request #50 from amhsirak/develop
feat: more detailed elementInfo
This commit is contained in:
@@ -81,10 +81,24 @@ export const getElementInformation = async (
|
||||
innerText?: string;
|
||||
url?: string;
|
||||
imageUrl?: string;
|
||||
attributes?: Record<string, string>;
|
||||
innerHTML?: string;
|
||||
outerHTML?: string;
|
||||
} = {
|
||||
tagName: element?.tagName ?? '',
|
||||
};
|
||||
|
||||
if (element) {
|
||||
info.attributes = Array.from(element.attributes).reduce(
|
||||
(acc, attr) => {
|
||||
acc[attr.name] = attr.value;
|
||||
return acc;
|
||||
},
|
||||
{} as Record<string, string>
|
||||
);
|
||||
}
|
||||
|
||||
// Gather specific information based on the tag
|
||||
if (element?.tagName === 'A') {
|
||||
info.url = (element as HTMLAnchorElement).href;
|
||||
info.innerText = element.innerText ?? '';
|
||||
@@ -96,6 +110,9 @@ export const getElementInformation = async (
|
||||
info.innerText = element?.innerText ?? '';
|
||||
}
|
||||
|
||||
info.innerHTML = element.innerHTML;
|
||||
info.outerHTML = element.outerHTML;
|
||||
|
||||
return info;
|
||||
}
|
||||
return null;
|
||||
|
||||
@@ -14,6 +14,9 @@ interface ElementInfo {
|
||||
innerText?: string;
|
||||
url?: string;
|
||||
imageUrl?: string;
|
||||
attributes?: Record<string, string>;
|
||||
innerHTML?: string;
|
||||
outerHTML?: string;
|
||||
}
|
||||
|
||||
interface AttributeOption {
|
||||
|
||||
Reference in New Issue
Block a user