tricks
Version:
ES6 modules
23 lines (19 loc) • 627 B
JavaScript
import instanceOf from '../object/instanceOf.js';
export default function isDomInstance(type, data) {
const test = `HTML${(type || '').replace(
/^[a-z]/,
m => m.toUpperCase()
)}Element`;
if (!data) {
return false;
}
if (window[test]) {
return instanceOf(data, window[test]);
}
else if (window.Element) {
return instanceOf(data, window.Element) && (!type || (data.tagName && data.tagName.toLowerCase() === type));
}
else {
return (!(instanceOf(data, Object) || instanceOf(data, Array) || instanceOf(data, String) || instanceOf(data, Number)) && data.tagName && data.tagName.toLowerCase() === type);
}
}