¿Cómo detectar qué texto pega el usuario en textarea con JS?Detectar texto pegado con ctrl + v o hacer clic con el botón derecho -> pegar
Respuesta
Se podría utilizar el evento pasta para detectar la pasta en la mayoría de los navegadores (especialmente no en Firefox 2, aunque). Cuando maneje el evento pegar, grabe la selección actual, y luego configure un breve temporizador que llame a una función después de que se haya completado el pegado. Esta función puede comparar longitudes y saber dónde buscar el contenido pegado. Algo como lo siguiente. En aras de la brevedad, la función que obtiene la selección de texto no funciona en IE. Vea aquí algo que hace: How to get the start and end points of selection in text area?
function getTextAreaSelection(textarea) {
var start = textarea.selectionStart, end = textarea.selectionEnd;
return {
start: start,
end: end,
length: end - start,
text: textarea.value.slice(start, end)
};
}
function detectPaste(textarea, callback) {
textarea.onpaste = function() {
var sel = getTextAreaSelection(textarea);
var initialLength = textarea.value.length;
window.setTimeout(function() {
var val = textarea.value;
var pastedTextLength = val.length - (initialLength - sel.length);
var end = sel.start + pastedTextLength;
callback({
start: sel.start,
end: end,
length: pastedTextLength,
text: val.slice(sel.start, end)
});
}, 1);
};
}
var textarea = document.getElementById("your_textarea");
detectPaste(textarea, function(pasteInfo) {
alert(pasteInfo.text);
// pasteInfo also has properties for the start and end character
// index and length of the pasted text
});
siguiente puede ayudarle a
function submitenter(myfield,e)
{
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;
else return true;
if (keycode == //event code of ctrl-v)
{
//some code here
}
}
<teaxtarea name="area[name]" onKeyPress=>"return submitenter(this,event);"></textarea>
Sí, pero ¿cuál será el lugar de "algún código aquí" si deseo detectar qué texto pega el usuario? – lam3r4370
funciona en IE 8 - 10
Creación de código personalizado para que el comando Pegar requiere varios pasos.
- Establezca el objeto de evento returnValue en false en el evento onbeforepaste para habilitar la opción de menú Pegar acceso directo.
- Cancele el comportamiento predeterminado del cliente estableciendo el objeto de evento returnValue en false en el controlador de eventos onpaste. Esto se aplica solo a los objetos, como el cuadro de texto, que tienen un comportamiento predeterminado definido para ellos.
- Especifique un formato de datos en el que pegar la selección mediante el método getData del objeto clipboardData.
- invoque el método en el evento onpaste para ejecutar código de pegado personalizado.
Para invocar este caso, realice una de las siguientes opciones:
- derecho del ratón para mostrar el menú contextual y seleccione Pegar.
- O presione CTRL + V.
Ejemplos
<HEAD>
<SCRIPT>
var sNewString = "new content associated with this object";
var sSave = "";
// Selects the text that is to be cut.
function fnLoad() {
var r = document.body.createTextRange();
r.findText(oSource.innerText);
r.select();
}
// Stores the text of the SPAN in a variable that is set
// to an empty string in the variable declaration above.
function fnBeforeCut() {
sSave = oSource.innerText;
event.returnValue = false;
}
// Associates the variable sNewString with the text being cut.
function fnCut() {
window.clipboardData.setData("Text", sNewString);
}
function fnBeforePaste() {
event.returnValue = false;
}
// The second parameter set in getData causes sNewString
// to be pasted into the text input. Passing no second
// parameter causes the SPAN text to be pasted instead.
function fnPaste() {
event.returnValue = false;
oTarget.value = window.clipboardData.getData("Text", sNewString);
}
</SCRIPT>
</HEAD>
<BODY onload="fnLoad()">
<SPAN ID="oSource"
onbeforecut="fnBeforeCut()"
oncut="fnCut()">Cut this Text</SPAN>
<INPUT ID="oTarget" TYPE="text" VALUE="Paste the Text Here"
onbeforepaste="fnBeforePaste()"
onpaste="fnPaste()">
</BODY>
documento completo: http://msdn.microsoft.com/en-us/library/ie/ms536955(v=vs.85).aspx
Todo un hilo de edad, pero ahora es posible utilizar http://willemmulder.github.com/FilteredPaste.js/ lugar. Le permitirá controlar lo que se pega en un área de texto o contenteditable.
me gusta la sugerencia para el botón derecho del ratón
$("#message").on('keyup contextmenu input', function(event) {
alert("ok");
});
finded aquí:
HTML5 ya proporciona onpaste
no sólo <input/>
, pero también elementos editables (<p contenteditable="true" />
, ...)
<input type="text" onpaste="myFunction()" value="Paste something in here">
Tenga cuidado, este no es un estándar web. https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/onpaste. (también, MDN es mucho más confiable que W3Schools para API web) –
- 1. VIM Ctrl-V Conflicto con Windows Pegar
- 2. autohotkey ctrl + clic = clic derecho
- 3. Cómo activo pegar en el cuadro de texto con Ctrl + v
- 4. Pegar texto desde el portapapeles con el botón
- 5. Disparador clic con el botón derecho
- 6. ¿Cómo permito CTRL-V (Pegar) en un cuadro de texto de Winforms?
- 7. CTRL + V desde el símbolo del sistema de Windows?
- 8. Selenium 2 haga clic con el botón derecho
- 9. Capturar Haga clic con el botón derecho en HTML DIV
- 10. Mostrando un menú emergente en QGraphicsScene, haga clic o haga clic con el botón derecho
- 11. Mostrar el menú contextual en ctrl-clic/clic derecho en el encabezado de NSTableView
- 12. detectar pegar en el cuadro de entrada
- 13. WebBrowser Control - Prevenir clic con el botón derecho
- 14. WinForms ListBox Haga clic con el botón derecho
- 15. ¿Cómo detectar Ctrl + V en Silverlight 4?
- 16. agregando mi programa para hacer clic con el botón derecho en el menú
- 17. copia Prevenir/pegar y haga clic en el botón derecho del significado de cuadro de texto (correo electrónico)
- 18. ¿Cómo puedo hacer clic con el botón derecho para seleccionar un nodo en un control treeview?
- 19. Silverlight Selección de cuadrícula de datos al hacer clic con el botón derecho
- 20. cómo agregar dbclick() al hacer clic con el botón derecho en jquery
- 21. Jquery: detectar si se hace clic en el botón central o derecho del ratón, si es así, hacer esto:
- 22. Capturar texto pegado en un área de texto con JQuery
- 23. Accesos directos Ctrl + C Ctrl + V no funcionan en los cuadros de texto si MenuStrip tiene estos accesos directos establecidos
- 24. Escuche el clic derecho en el elemento svg con Raphael.js
- 25. Cómo detectar el evento de clic derecho para Mac OS
- 26. Menú contextual de Extjs (clic con el botón derecho) en un botón
- 27. DataGridView, haga clic con el botón derecho en el menú/copiar ejemplo?
- 28. Visual C# Haz clic con el botón secundario del botón
- 29. JS: detectar el clic derecho sin jQuery (en línea)
- 30. menú contextual con el botón derecho del mouse para datagridview
posible duplicado de [¿Cómo detecta facebook cuando un enlace como ha pegado] (http://stackoverflow.com/questions/1891145/how-does-facebook-detect-when- a-link-as-been-pegado) –
No, por ejemplo, pego "test textarea", quiero detectar qué texto está pegado, en este caso - "test textarea" – lam3r4370
probablemente no puedas hacer ese cross-browser ... – galambalazs