Skip to content

Commit 7e0b6f2

Browse files
committed
fix (KnowledgeGraph.js): prevent default context menu and safely handle missing DOM event in network 'oncontext' handler
1 parent baa8939 commit 7e0b6f2

1 file changed

Lines changed: 17 additions & 1 deletion

File tree

resources/KnowledgeGraph.js

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -899,8 +899,24 @@ ${propertyOptions}|show-property-type=true
899899
}
900900

901901
function attachContextMenuListener() {
902+
// Attach a listener for the "oncontext" event of the vis.Network instance
902903
self.Network.on('oncontext', function (params) {
903-
params.event.preventDefault();
904+
// Attempt to get the original DOM event from vis.Network's params
905+
// vis.js sometimes passes either 'event' or 'domEvent', depending on the version or context
906+
const domEvent = params.event || params.domEvent || null;
907+
908+
// If no DOM event is available, or it doesn't have a preventDefault method, exit early
909+
// This prevents runtime errors when vis.Network calls the handler without a proper event
910+
if (!domEvent || typeof domEvent.preventDefault !== 'function') {
911+
return; // No usable context event → nothing to do
912+
}
913+
914+
// Prevent the default context menu from appearing
915+
domEvent.preventDefault();
916+
917+
// Stop the event from propagating further up the DOM tree
918+
// Optional chaining used in case stopPropagation is undefined
919+
domEvent.stopPropagation?.();
904920

905921
// pointer coordinates
906922
const pointer = { x: params.pointer.DOM.x, y: params.pointer.DOM.y };

0 commit comments

Comments
 (0)