diff --git a/addons/web/static/src/core/popover/popover.js b/addons/web/static/src/core/popover/popover.js index 2355763c84d..3d4d517e6bc 100644 --- a/addons/web/static/src/core/popover/popover.js +++ b/addons/web/static/src/core/popover/popover.js @@ -145,8 +145,12 @@ Popover.props = { validate: (target) => { // target may be inside an iframe, so get the Element constructor // to test against from its owner document's default view - const Element = target?.ownerDocument?.defaultView.Element; - return Boolean(Element) && (target instanceof Element || target instanceof window.Element); + const Element = target?.ownerDocument?.defaultView?.Element; + return ( + (Boolean(Element) && + (target instanceof Element || target instanceof window.Element)) || + (typeof target === "object" && target?.constructor?.name?.endsWith("Element")) + ); }, }, slots: {