-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcontextMenu.js
39 lines (30 loc) · 1.4 KB
/
contextMenu.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
function showContextMenu(event) {
event.preventDefault();
var contextMenu = document.getElementById("contextMenu");
contextMenu.style.display = "block";
contextMenu.style.left = event.clientX + "px";
contextMenu.style.top = event.clientY + "px";
document.addEventListener("click", function hideContextMenu() {
contextMenu.style.display = "none";
document.removeEventListener("click", hideContextMenu);
});
}
// Manejar eventos de contexto dentro de los iframes
function handleIframeContextMenu(event) {
event.preventDefault();
var contextMenu = parent.document.getElementById("contextMenu");
contextMenu.style.display = "block";
var iframe = event.currentTarget;
var iframeRect = iframe.getBoundingClientRect();
contextMenu.style.left = event.clientX + "px";
contextMenu.style.top = (iframeRect.top + event.clientY) + "px";
parent.document.addEventListener("click", function hideContextMenu() {
contextMenu.style.display = "none";
parent.document.removeEventListener("click", hideContextMenu);
});
}
// Obtener todos los iframes y agregarles un manejador de eventos para el menú contextual
var iframes = document.getElementsByTagName("iframe");
for (var i = 0; i < iframes.length; i++) {
iframes[i].contentWindow.document.addEventListener("contextmenu", handleIframeContextMenu);
}