variable javascript jquery flash copy copy-paste

variable - javascript copy table to clipboard



¿Hay alguna solución nueva para copiar múltiples grupos de texto al portapapeles a través de JavaScript/Flash, desde Flash 10? (2)

Es una noticia terrible, ni siquiera me había dado cuenta. Yo uso el truco de Flash extensivamente también. Por lo que yo sé, esa era la única forma de hacer que la copia funcionara sin tener que instalar algún otro complemento (además del omnipresente Flash) debido a problemas de seguridad del navegador.

Actualización: después de mucho pánico y de algunas búsquedas en Google, tropecé con http://code.google.com/p/zeroclipboard/ que proporciona un truco compatible con Flash 10 para que la copia vuelva a funcionar. Ahora para ir a actualizar sitios web ...

Desde que se introdujo Flash 10, muchas de las scripts populares de "copiar en el portapapeles" han dejado de funcionar debido a las nuevas restricciones de seguridad. Hay una solución solo Flash aquí:

http://cfruss.blogspot.com/2009/01/copy-to-clipboard-swf-button-cross.html

... aunque estoy buscando la capacidad de activar la función de copia a través de JS, en lugar de confiar en que el usuario haga clic en un objeto Flash para disparar.

Para ver un ejemplo de lo que actualmente empleamos, consulte:

http://snipt.net/public

Cualquiera de los enlaces de ''copia'' usa el complemento de copia de jQuery aquí:

http://plugins.jquery.com/project/copy

ACTUALIZACIÓN: OK, así que probé ZeroClipboard. A primera vista, se veía genial. Sin embargo, la cantidad de código redundante necesaria para habilitar múltiples enlaces del portapapeles es inaceptable. En algunos casos, habrá más de 40 instancias de texto que tengan cada uno su propio enlace de "copia". Todavía estoy buscando una mejor solución ...


Esta solución solo funciona con las teclas que invocarían la operación deseada. Funciona al mover el cursor del usuario a un elemento de área de texto antes de que el usuario finalice la pulsación de tecla correspondiente. Solo funciona para la entrada de texto. Tengo esto funcionando en Firefox y Chrome. IE puede usar el objeto clipboardData (que es preferible a este truco).

En su html en algún lugar, debe crear un elemento textarea con filas arbitrariamente grandes y atributos cols. El elemento '' clipboard-textarea '' será el área de espera para los datos pegados y copiados. Escondo el elemento usando algunos atributos de estilo.

La secuencia de comandos:

var desiredClipboardContents = ''It works''; function onCopyKeyPressed() { // The trick here is to populate the textarea with // the text you want copied before the user releases // the copy keystroke. var textarea = document.getElementById(''clipboard-textarea''); textarea.value = desiredClipboardContents; textarea.focus(); textarea.select(); } function onPasteKeyPressed() { var textarea = document.getElementById(''clipboard-textarea''); textarea.value = ''''; textarea.focus(); // The trick here is to delay slurping the content // that arrives in the textarea element until after // the paste keystroke is completed. The 750 ms timeout // provides the necessary delay. setTimeout("finishedPasting", 750); } function finishedPasting() { var textarea = document.getElementById(''clipboard-textarea''); alert("Received from clipboard-paste: " + textarea.value); }