diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Be/Menus/ActionMenuViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Be/Menus/ActionMenuViewHelper.php
index ee28a3f17a7aa9816812fd0c5c03d1acaacb3ef8..6de1beb7dd14b8bcd839e8280fec4ee0ec464869 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Be/Menus/ActionMenuViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Be/Menus/ActionMenuViewHelper.php
@@ -15,6 +15,9 @@
 
 namespace TYPO3\CMS\Fluid\ViewHelpers\Be\Menus;
 
+use TYPO3\CMS\Core\Page\JavaScriptModuleInstruction;
+use TYPO3\CMS\Core\Page\JavaScriptRenderer;
+use TYPO3\CMS\Core\Page\PageRenderer;
 use TYPO3Fluid\Fluid\Core\Compiler\TemplateCompiler;
 use TYPO3Fluid\Fluid\Core\Parser\SyntaxTree\ViewHelperNode;
 use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper;
@@ -80,15 +83,19 @@ class ActionMenuViewHelper extends AbstractTagBasedViewHelper
      */
     public function render()
     {
-        $this->tag->addAttribute('onchange', 'window.location.href = this.options[this.selectedIndex].value;');
         $options = '';
         foreach ($this->childNodes as $childNode) {
             if ($childNode instanceof ViewHelperNode) {
                 $options .= $childNode->evaluate($this->renderingContext);
             }
         }
+        $this->tag->addAttributes([
+            'data-global-event' => 'change',
+            'data-action-navigate' => '$value',
+        ]);
         $this->tag->setContent($options);
-        return '<div class="docheader-funcmenu">' . $this->tag->render() . '</div>';
+        return $this->loadRequireJsModule('TYPO3/CMS/Backend/GlobalEventHandler')
+            . '<div class="docheader-funcmenu">' . $this->tag->render() . '</div>';
     }
 
     /**
@@ -104,4 +111,18 @@ class ActionMenuViewHelper extends AbstractTagBasedViewHelper
         $compiler->disable();
         return null;
     }
+
+    /**
+     * Renders `<script src="JavaScriptHandler.js">...</script>` for loading
+     * corresponding module. Using `JavaScriptRenderer` makes this independent
+     * from `PageRenderer` and its current application state.
+     */
+    protected function loadRequireJsModule(string $name): string
+    {
+        $javaScriptRenderer = JavaScriptRenderer::create();
+        $javaScriptRenderer->addJavaScriptModuleInstruction(
+            JavaScriptModuleInstruction::forRequireJS($name)
+        );
+        return $javaScriptRenderer->render();
+    }
 }