Hoy en día, hay más y más tipos de navegadores, como IE, Firefox, Chrome, Safari, etc., por lo que no es tan fácil implementar una pequeña función de copiar contenido en el portapapeles con un JS.
En la era de Flash 9, había una solución para matar el contenido de copia JS de todos los navegadores en el portapapeles :
Esta solución es uno de los métodos más populares: la famosa solución de copia del portapapeles utiliza un portapapeles.swf como un puente para copiar contenido en el portapapeles.
El principio es: crear un archivo flash oculto y al mismo tiempo asigne el valor "portaplés = .." al flash flash flash. A través de esta tarea, el contenido copiado se colocará en el portapapeles. Este método es compatible con IE, Firefox, Opera, Chrome y Safari, y es realmente una solución "universal". La tasa de instalación del flash del navegador es muy alta, lo cual es casi una solución perfecta.
La copia del código es la siguiente:
<! DocType html public "-// w3c // dtd xhtml 1.0 Transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transicional.dtd ">
<html xmlns = "http://www.w3.org/1999/xhtml">
<Evista>
<title> Web Developer- www.admin10000.com </title>
<meta http-equiv = "content-type" content = "text /html; charset = utf-8" />
<script type = "text/javaScript">
var portapboardswfdata;
var setCopy_gettext = function () {
clipboardswfdata = document.getElementById ('test_text'). valor;
// alerta (Papboardswfdata);
Window.document.clipboardswf.setVariable ('Str', Papboardswfdata);
}
var floatwin = function () {
alerta ('¡Copie con éxito!');
//document.getElementByid('ClipInner').Style.Display = 'Ninguno';
}
</script>
</ablo>
<Body>
<Textarea id = "test_text" Rows = "15" cols = "100"> Contenido de texto ...
<div id = "Papboard_content">
<Div> <span id = "clipinner"> Copie el código al portapapeles
<incrust name = "ppboardswf "id =" Portboardswf "onMouseOver =" setCopy_gettext () "dispositivo =" falso "src =" ./_ppapbobotebo
</span>
</div>
</div>
</body>
</html>
La dirección de descarga de portapapeles.swf: http://www.jeffothy.com/weblog/uploads/clipboard.php
Pero en la efectividad de Flash 10, el método anterior ya no es posible.
Debido a que Flash10 estipula que solo las operaciones reales en SWF (como el clic del mouse) pueden acceder al portapapeles, mientras que el método de arriba solo usa un archivo SWF oculto y opera el portapapeles Flash a través de JavaScript. El usuario no realiza operaciones reales en el archivo SWF, por lo que este método no es válido.
Entonces, ¿cómo resolver este problema de "operación real"? Puede usar una biblioteca de JavaScript: Zero Portapapook. Esta biblioteca JS puede admitir Flash 10 copiando al portapapeles. El principio de este método es sobrescribir un elemento DOM como el botón o div en un flash transparente (no visible para el usuario). Al hacer clic en este DOM, el clic real de Flash es acceder al portapapeles Flash.
Aquí hay algunos ejemplos de depuración:
La copia del código es la siguiente:
<! DocType html public "-// w3c // dtd xhtml 1.0 Transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transicional.dtd ">
<html xmlns = "http://www.w3.org/1999/xhtml">
<Evista>
<title> cero Test de portapapeles </title>
<meta http-equiv = "content-type" content = "text /html; charset = utf-8" />
<script type = "text/javaScript" src = "zeroClipboard.js"> </script>
<script type = "text/javaScript">
var clip = null;
función $ (id) {return document.getElementById (id); }
función init () {
clip = new ZeroClipboard.client ();
clip.sethandCursor (verdadero);
clip.addeventListener ('mouseover', function (cliente) {
// Actualizar el texto en el mouse
clip.settext ($ ('Fe_Text'). Valor);
});
clip.addeventListener ('completo', función (cliente, texto) {
// DebugStr ("Texto copiado al portapapeles:" + Text);
alerta ("Esta dirección ha sido copiada, puede pegarla con Ctrl+V.");
});
clip.glue ('clip_button', 'clip_container');
}
</script>
</ablo>
<Body Onload = "init ()">
<input id = "fe_text" cols = "50" filas = "5" valor = "Copiar texto de contenido">
<span id = "clip_container"> <span id = "clip_button"> <strong> copiar </strong> </span> </span>
</body>
</html>
Haga clic para descargar esta biblioteca: //www.vevb.com/jiaoben/24961.html
Sube al sitio web durante la depuración. Si abre flash directamente localmente, habrá un error y no hay permiso. La propiedad de películas en el archivo ZeroClipboard.js es la dirección de Falsh, que es la ubicación de la dirección donde ZeroClipboard.swf se almacena en el directorio.
Esta solución para copiar contenido al portapapeles puede admitir navegadores: Firefox/IE/Opera/Chorme/Safari All Browsers.