Fix to work inside iframes. (#2069)
* Fix to work inside iframes. Right now Plyr fails to load inside iframes because the selectors are not instances of Element (iframes have their own, separate globals). This is an alternative method to check isElement that will work inside iframes. This is battle-tested fallback code used before browsers supported HTMLElement. * Update is.js
This commit is contained in:
parent
f00e81a976
commit
16c134fc1e
@ -13,7 +13,6 @@ const isFunction = (input) => getConstructor(input) === Function;
|
||||
const isArray = (input) => Array.isArray(input);
|
||||
const isWeakMap = (input) => instanceOf(input, WeakMap);
|
||||
const isNodeList = (input) => instanceOf(input, NodeList);
|
||||
const isElement = (input) => instanceOf(input, Element);
|
||||
const isTextNode = (input) => getConstructor(input) === Text;
|
||||
const isEvent = (input) => instanceOf(input, Event);
|
||||
const isKeyboardEvent = (input) => instanceOf(input, KeyboardEvent);
|
||||
@ -21,6 +20,13 @@ const isCue = (input) => instanceOf(input, window.TextTrackCue) || instanceOf(in
|
||||
const isTrack = (input) => instanceOf(input, TextTrack) || (!isNullOrUndefined(input) && isString(input.kind));
|
||||
const isPromise = (input) => instanceOf(input, Promise) && isFunction(input.then);
|
||||
|
||||
const isElement = (input) =>
|
||||
input !== null &&
|
||||
(typeof input === "object") &&
|
||||
(input.nodeType === 1) &&
|
||||
(typeof input.style === "object") &&
|
||||
(typeof input.ownerDocument === "object");
|
||||
|
||||
const isEmpty = (input) =>
|
||||
isNullOrUndefined(input) ||
|
||||
((isString(input) || isArray(input) || isNodeList(input)) && !input.length) ||
|
||||
|
Loading…
x
Reference in New Issue
Block a user