El Atributo ONCUT

Es un evento de JavaScript que se activa cuando el usuario corta contenido desde un elemento HTML editable o seleccionable.
El atributo oncut
es un evento de JavaScript que se activa cuando el usuario corta contenido (usando Ctrl + X
, el menú contextual o gestos equivalentes) desde un elemento HTML editable o seleccionable. Es útil para controlar, modificar o rastrear acciones de cortar texto, especialmente en formularios y aplicaciones interactivas.
¿Dónde se aplica?
Funciona en elementos que permiten la edición o selección de texto:
-
<input>
(text, email, password, etc.). -
<textarea>
. -
Elementos con
contenteditable="true"
.
Sintaxis básica
Como atributo HTML:
<input type="text" oncut="manejarCorte(event)">
Con JavaScript (recomendado):
elemento.addEventListener('cut', function(e) { e.preventDefault(); // Acciones personalizadas });
Ejemplos prácticos
Ejemplo 1: Mostrar alerta al cortar
<input type="text" value="Intenta cortar este texto" oncut="alert('¡Texto cortado!')" >
Ejemplo 2: Registrar actividad de corte
<textarea id="editor" oncut="registrarCorte(event)"> Texto editable... </textarea> <p id="contador">Cortes: 0</p> <script> let cortes = 0; function registrarCorte(e) { cortes++; document.getElementById('contador').textContent = `Cortes: ${cortes}`; } </script>
Ejemplo 3: Modificar el texto cortado
<div contenteditable="true" oncut="agregarMarca(event)"> Corta este texto para ver una marca de tiempo. </div> <script> function agregarMarca(e) { const textoSeleccionado = window.getSelection().toString(); const textoModificado = `${textoSeleccionado} [Cortado: ${new Date().toLocaleTimeString()}]`; // Reemplazar el texto en el portapapeles e.clipboardData.setData('text/plain', textoModificado); e.preventDefault(); // Evita el corte original // Eliminar el texto seleccionado manualmente document.execCommand('delete'); } </script>
Diferencias clave: oncut
vs eventos similares
Evento | Descripción |
---|---|
oncut |
Al cortar (copiar + eliminar texto). |
oncopy |
Al copiar texto sin eliminarlo. |
onpaste |
Al pegar texto desde el portapapeles. |
Mejores prácticas
Acceso al portapapeles:
Usa e.clipboardData
para leer o modificar el texto cortado:
elemento.addEventListener('cut', (e) => { const textoOriginal = window.getSelection().toString(); e.clipboardData.setData('text/plain', textoOriginal.toUpperCase()); e.preventDefault(); });
Validar contenido cortado:
elemento.addEventListener('cut', (e) => { const texto = window.getSelection().toString(); if (texto.includes('@')) { alert("¡No se pueden cortar correos electrónicos!"); e.preventDefault(); } });
Accesibilidad:
Si restringes acciones de corte, proporciona un mensaje claro:
e.preventDefault(); mostrarTooltip("Esta acción está restringida");
Casos avanzados
Integración con autoguardado:
<textarea id="notas" oncut="guardarBorrador()">Notas importantes...</textarea> <script> function guardarBorrador() { localStorage.setItem('borrador', document.getElementById('notas').value); } </script>
Sincronización con API de portapapeles:
elemento.addEventListener('cut', async (e) => { e.preventDefault(); const texto = window.getSelection().toString(); // Guardar en el portapapeles del sistema await navigator.clipboard.writeText(texto); // Eliminar el texto seleccionado document.execCommand('delete'); });
Errores comunes
<!-- MAL: Usar en elementos no editables --> <p oncut="...">Texto normal</p> <!-- No funciona sin contenteditable --> <!-- CONFUSIÓN: Olvidar e.preventDefault() --> <input type="text" oncut="modificarTexto(event)"> <!-- El texto original se cortará igualmente --> <!-- BLOQUEAR SIN FEEDBACK --> <script> elemento.oncut = (e) => e.preventDefault(); // Usuario confundido </script>
Compatibilidad
Navegador | Soporte | Notas |
---|---|---|
Chrome | ✅ Todas versiones | |
Firefox | ✅ Todas versiones | |
Safari | ✅ Sí | |
Edge | ✅ Sí | |
Móviles | ✅ Sí (iOS/Android) | Gestos táctiles pueden variar |
Cómo eliminar el evento
// Para atributo HTML: elemento.oncut = null; // Para addEventListener: elemento.removeEventListener('cut', miFuncion);
Conclusión
El atributo oncut
es útil para:
- Modificar o validar el texto cortado.
- Rastrear acciones del usuario en aplicaciones.
- Integrar funcionalidades avanzadas con el portapapeles.
Recuerda:
- Usa
e.preventDefault()
para anular el comportamiento predeterminado. - Respeta la experiencia del usuario – evita restricciones innecesarias.
- Prueba en todos los navegadores para garantizar compatibilidad.
¡Ahora puedes controlar y mejorar la interacción de "cortar" en tus proyectos web!