Pregunta

Estoy tratando de escribir un script JavaScript para agregar a greasemonkey que agrega un botón después de un elemento. OnClick para este botón debe copiar el texto del elemento primario en el teclado. He visto muchos ejemplos que copian el texto ya seleccionado en el portapapeles como este:

    <SCRIPT LANGUAGE="JavaScript">
    <!-- Begin
    function copyit(theField) {
    var selectedText = document.selection;
    if (selectedText.type == 'Text') {
    var newRange = selectedText.createRange();
    theField.focus();
    theField.value = newRange.text;
    } else {
    alert('Alert: Select The text in the textarea then click on this button');
    }
    }
    // End -->
    </script>
    <input onclick="copyit(this.form.text_select)" type="button" value="Click Here to Copy the Highlighted Text" name="copy_button">

Encontrado aquí .

También descubrí que puede seleccionar texto en los elementos de entrada. He intentado combinar ambas técnicas, así como muchas otras, sin una solución viable todavía. Ni siquiera estoy seguro de por qué el código anterior se copia en el portapapeles. ¿Alguien tiene una solución para esto?

¿Fue útil?

Solución

Si se tomó el tiempo de leer el artículo completo, el autor afirma que esto no funciona para Firefox ...
En realidad, creo que ni siquiera funciona para IE, ¡ya que no hace nada relacionado con el portapapeles!

Existe una técnica que utiliza Flash, porque por defecto, Firefox inhibe el acceso al portapapeles por razones de seguridad. De lo contrario, la forma clásica de hacer una copia es:

var tc = textToCopy.replace(/\n\n/g, '\n');
if (window.clipboardData) // IE
{
  window.clipboardData.setData("Text", tc);
}
else
{
  unsafeWindow.netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
  const clipboardHelper = Components.classes
      ["@mozilla.org/widget/clipboardhelper;1"].
      getService(Components.interfaces.nsIClipboardHelper);
  clipboardHelper.copyString(tc);
}

después de habilitar la copia (para un sitio determinado).

Otros consejos

¿Estás seguro de que tu ejemplo funciona? No lo hace en mi navegador. Pero eche un vistazo a la siguiente página: http://www.jeffothy.com/weblog/ copia del portapapeles /

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top