diff --git a/packages/main/src/Menu.ts b/packages/main/src/Menu.ts index 373d4fd4f197..94de98c5ea77 100644 --- a/packages/main/src/Menu.ts +++ b/packages/main/src/Menu.ts @@ -384,10 +384,9 @@ class Menu extends UI5Element { if (!this.opener) { return; } - if (this.open) { - const rootNode = this.getRootNode() as Document; - const opener = this.opener instanceof HTMLElement ? this.opener : rootNode && rootNode.getElementById(this.opener); + if (this.open) { + const opener = this.getOpener(); if (opener) { this.showAt(opener); } @@ -444,6 +443,11 @@ class Menu extends UI5Element { return this._popover; } + getOpener() { + const rootNode = this.getRootNode() as Document; + return this.opener instanceof HTMLElement ? this.opener : rootNode?.getElementById?.(this.opener); + } + _navigateBack() { const parentMenuItem = this._parentItemsStack.pop(); diff --git a/packages/main/test/pages/Menu.html b/packages/main/test/pages/Menu.html index 7f87585f3ab9..007e7cb66ac8 100644 --- a/packages/main/test/pages/Menu.html +++ b/packages/main/test/pages/Menu.html @@ -12,7 +12,7 @@ -
+