El clipboardData
puede contener datos en varios formatos posibles. Es posible que un programa agregue datos del portapapeles en múltiples formatos. Para ver los formatos, mira a través del clipboardData.types
.
A menudo los datos del portapapeles contienen texto sin formato, y el primer tipo enumerado en types
será el tipo MIME "text/plain". Si copia texto de un navegador, verá dos tipos en la lista: "text/plain" y "text/html". Dependiendo de la cadena que pase al getData
, puede tomar el texto sin formato o el html. Parece que "texto" es la abreviatura de "texto/texto simple" y "url" es la abreviatura de "texto/lista uri".
element.addEventListener('paste', function(event) {
var cb = event.clipboardData
if(cb.types.indexOf("text/html") != -1) { // contains html
var pastedContent = cb.getData("text/html")
} else if(cb.types.indexOf("text/html") != -1) { // contains text
var pastedContent = cb.getData("text/html")
} else {
var pastedContent = cb.getData(cb.types[0]) // get whatever it has
}
// do something with pastedContent
})
Para obtener más información sobre cómo utilizar clipboardData.getData
, ver the ugly spec.
Por lo que puedo decir, esta solución permite copiar al portapapeles, pero no obtener desde el portapapeles. Por lo tanto, esto no es en absoluto una solución a la pregunta propuesta: no sé por qué se marcó así (a menos que el PO estuviera confundido). Si estoy equivocado, por favor explique! – bgmCoder