fix(app): 优化阻止默认右键菜单处理逻辑,处理每个元素

This commit is contained in:
2025-02-21 22:34:47 +08:00
parent abb1fed1ef
commit 084afc0cef

View File

@@ -53,28 +53,36 @@ const themeVars = useThemeVars();
*/ */
function handleContextMenu(event) { function handleContextMenu(event) {
let element = event.target; let elements = event.composedPath();
let classValue = ''; let classValue = '';
let classRegExp = /(__code__|n-code|n-input|n-input-number|n-select)/; let classRegExp = /(n-code|n-input|n-input-number|n-ol|n-select)/;
// 排除按住 Ctrl 键时 // 排除按住 Ctrl 键时
if (event.ctrlKey) { if (event.ctrlKey) {
return; return;
} }
// 获取元素 class 信息 for (let i = 0; i < elements.length; i++) {
if (element instanceof HTMLElement) {
classValue = element.classList.value;
}
// 排除输入框元素 let element = elements[i];
if (element instanceof HTMLInputElement) {
return; // 获取元素 class 信息
} if (element instanceof HTMLElement) {
classValue = element.classList.value;
} else {
continue;
}
// 排除输入框元素
if (element instanceof HTMLInputElement) {
return;
}
// 排除指定元素
if (classValue && classRegExp.test(classValue)) {
return;
}
// 排除指定元素
if (classValue && classRegExp.test(classValue)) {
return;
} }
event.preventDefault(); event.preventDefault();