35 lines
643 B
JavaScript
35 lines
643 B
JavaScript
|
|
// Node.prototype.contains
|
|
(function() {
|
|
|
|
function contains(node) {
|
|
if (!(0 in arguments)) {
|
|
throw new TypeError('1 argument is required');
|
|
}
|
|
|
|
do {
|
|
if (this === node) {
|
|
return true;
|
|
}
|
|
// eslint-disable-next-line no-cond-assign
|
|
} while (node = node && node.parentNode);
|
|
|
|
return false;
|
|
}
|
|
|
|
// IE
|
|
if ('HTMLElement' in self && 'contains' in HTMLElement.prototype) {
|
|
try {
|
|
delete HTMLElement.prototype.contains;
|
|
// eslint-disable-next-line no-empty
|
|
} catch (e) {}
|
|
}
|
|
|
|
if ('Node' in self) {
|
|
Node.prototype.contains = contains;
|
|
} else {
|
|
document.contains = Element.prototype.contains = contains;
|
|
}
|
|
|
|
}());
|