@@ -71,3 +71,49 @@ document.addEventListener("DOMContentLoaded", () => {
7171 console . warn ( "Highlight.js is not loaded." ) ;
7272 }
7373} ) ;
74+
75+ let contextMenu ;
76+ let selectedElement ;
77+
78+ document . addEventListener ( 'contextmenu' , function ( event ) {
79+ event . preventDefault ( ) ;
80+ selectedElement = event . target ;
81+ contextMenu = document . getElementById ( 'customContextMenu' ) ;
82+ contextMenu . style . display = 'block' ;
83+ contextMenu . style . left = event . pageX + 'px' ;
84+ contextMenu . style . top = event . pageY + 'px' ;
85+ } ) ;
86+
87+ document . addEventListener ( 'click' , function ( ) {
88+ contextMenu . style . display = 'none' ;
89+ } ) ;
90+
91+ function copyText ( ) {
92+ if ( selectedElement . tagName === 'P' || selectedElement . tagName === 'PRE' ) {
93+ navigator . clipboard . writeText ( selectedElement . textContent ) ;
94+ }
95+ }
96+
97+ function openLinkNewTab ( ) {
98+ if ( selectedElement . tagName === 'A' ) {
99+ window . open ( selectedElement . href , '_blank' ) ;
100+ }
101+ }
102+
103+ function downloadAsset ( ) {
104+ if ( selectedElement . tagName === 'A' && selectedElement . download ) {
105+ selectedElement . click ( ) ;
106+ }
107+ }
108+
109+ function copyURL ( ) {
110+ if ( selectedElement . tagName === 'A' ) {
111+ navigator . clipboard . writeText ( selectedElement . href ) ;
112+ }
113+ }
114+
115+ function viewImage ( ) {
116+ if ( selectedElement . tagName === 'IMG' ) {
117+ window . open ( selectedElement . src , '_blank' ) ;
118+ }
119+ }
0 commit comments