From faf0634924e4a4c23c7c206f86d34ecf3c06aa05 Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 18 Aug 2025 12:33:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B1=8F=E8=94=BD=E5=8F=B3=E9=94=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/pages/index.vue | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/app/pages/index.vue b/app/pages/index.vue index 3ad8755..53dd7ce 100644 --- a/app/pages/index.vue +++ b/app/pages/index.vue @@ -327,7 +327,7 @@ // Request fullscreen nextTick(() => { document.documentElement.requestFullscreen?.() - || document.documentElement.webkitRequestFullscreen?.(); + || document.documentElement.webkitRequestFullscreen?.(); }); } @@ -524,9 +524,35 @@ onMounted(() => { document.addEventListener("keydown", handleKeyPress); + + // Disable context menu on video and entire page + const disableContextMenu = (e) => { + e.preventDefault(); + return false; + }; + + // Add contextmenu event listeners + document.addEventListener("contextmenu", disableContextMenu); + + // Also disable on video element specifically + if (videoElement.value) { + videoElement.value.addEventListener("contextmenu", disableContextMenu); + } + + // Store the handler for cleanup + window._disableContextMenu = disableContextMenu; }); onUnmounted(() => { document.removeEventListener("keydown", handleKeyPress); + + // Clean up context menu listeners + if (window._disableContextMenu) { + document.removeEventListener("contextmenu", window._disableContextMenu); + if (videoElement.value) { + videoElement.value.removeEventListener("contextmenu", window._disableContextMenu); + } + delete window._disableContextMenu; + } });