
Um die Kommunikation vom Client zum Web Dynpro Backend zu ermöglichen, verwenden Sie die JavaScript Callback API.
|
fireEvent |
Löst eine Web Dynpro Aktion am Client aus. |
|
addEventListener |
Registriert einen Ereignisbehandler auf ein Ereignis am Client (zum Beispiel Drücken der rechten Maustaste zum Öffnen des Kontextmenüs). Der Ereignisbehandler wird gerufen, wenn das Ereignis auftritt. |
|
removeEventListener |
Löscht die Registrierung auf das Ereignis |
Fügen Sie Ihrem Web Dynpro UI-Element HTMLIsland oder HTMLContainer die Aggregation EVENTS hinzu, geben Sie bei der Eigenschaft Name z.B. myEvent an und implementieren Sie eine onAction-Ereignisbehandlermethode.
Um dieses Ereignis Client-seitig aufzurufen, muss eine Referenz auf die Callback API als Parameter eines JavaScript-Aufrufs übertragen werden:
wd_this->m_html_island->add_script_call(
cl_wd_html_script_call=>new_call(
)->variable( ` MyHTMLIsland `
)->function( `setCallbackAPI`
)->add_callback_api( )
).
Das Client-seitige JavaScript-Objekt muss eine Funktion setCallbackAPI mit einem Parameter besitzen, der die Referenz auf die Callback API enthält. Um eine Web Dynpro Aktion auszulösen, können Sie in Ihrer JavaScript-Datei die folgende Referenz verwenden:
callback.fireEvent('myEvent','dataString');Sie können das Unified Rendering Kontextmenü ausschalten und dafür ein selbstdefiniertes Kontextmenü oder das vom Browser zur Verfügung gestellte Kontextmenü anzeigen lassen.
callback.addEventListener('contextmenu', fHandler )Geben Sie der Methode addEventListener den Parameter contextmenu mit. Damit wird die Funktion auf das Ereignis Öffnen des Kontextmenus durch Klicken der rechten Maustaste registriert.
Der zweite Parameter fHandler referenziert die Funktion zum Behandeln des Ereignisses. Diese Funktion wird gerufen, wenn der Benutzer das Kontextmenu aufruft.
In der Implementierung der Funktion (fHandler = function (e) { ... }) definieren Sie, wie die Anwendung regieren soll, wenn das Ereignis ausgelöst wird. Hier können Sie zum Beispiel ein selbstdefiniertes Kontextmenü spezifizieren.
Beim Aufruf der Funktion wird das Browserevent e als Parameter übergeben.
Am Parameter e können Sie die Funktion cancelBubble auf den Wert true setzen:e.cancelBubble = true;
In diesem Fall wird das Bubbling unterbunden und das Unified Rendering Kontextmenü wird gar nicht mehr angezeigt.