Heutzutage gibt es immer mehr Browsertypen wie IE, Firefox, Chrome, Safari usw., daher ist es nicht so einfach, eine kleine Funktion des Kopierens von Inhalten in die Zwischenablage mit einem JS zu implementieren.
In der Flash 9 -Ära gab es eine Lösung, um alle Browser -JS -Kopierinhalte in die Zwischenablage zu töten :
Diese Lösung ist eine der beliebtesten Methoden: In der berühmten Clipboard -Kopie -Lösung wird eine Zwischenablage als Brücke verwendet, um Inhalte in die Zwischenablage zu kopieren.
Das Prinzip lautet: Erstellen einer versteckten Flash -Datei und gleichzeitig dem Wert "clipboard = .." dem Flash -Variablen -Blitz zuweisen. Durch diese Zuordnung wird der kopierte Inhalt in die Zwischenablage platziert. Diese Methode ist mit IE, Firefox, Oper, Chrom und Safari kompatibel und ist wirklich eine "universelle" Lösung. Die Installationsrate des Browserblitzes ist sehr hoch, was fast eine perfekte Lösung ist.
Die Codekopie lautet wie folgt:
<! DocType html public "-// w3c // dtd xhtml 1.0 transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transsitional.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml">
<kopf>
<title> Webentwickler- www.admin10000.com </title>
<meta http-äquiv = "content-type" content = "text /html; charset = utf-8" />
<script type = "text/javaScript">
var clipboardswfdata;
var setCopy_getText = function () {
clipboardswfData = document.getElementById ('test_text'). Wert;
// alarm (clipboardswfdata);
window.document.clipboardswf.setVariable ('str', clipboardswfdata);
}
var floatwin = function () {
alarm ('Kopie erfolgreich!');
//document.getElementById('clipinner')).style.display = 'none';
}
</script>
</head>
<body>
<textArea id = "test_text" rows = "15" cols = "100"> Textinhalt ..... </textArea>
<div id = "clipboard_content">
<Div> <span id = "clipinner"> Kopieren Sie den Code in die Zwischenablage
<eingebettet name = "clipboardswf" id = "clipboardswf" onmouseover = "setCopy_GeteText ()" DeviceFont = "False" src = "./_ clipboard
</span>
</div>
</div>
</body>
</html>
Die Download -Adresse von clipboard.swf: http://www.jeffothy.com/weblog/uploads/clipboard.php
In der Flash 10 -Ära ist die obige Methode jedoch nicht mehr möglich.
Da Flash10 festlegt, dass nur reale Operationen auf SWF (z. B. Mausklick) auf die Zwischenablage zugreifen können, während die obige Methode nur eine versteckte SWF -Datei verwendet und die Flash -Zwischenablage über JavaScript bedient. Der Benutzer führt keine realen Operationen in der SWF -Datei aus, sodass diese Methode ungültig ist.
Wie löst ich dieses Problem "Real Operation"? Sie können eine JavaScript -Bibliothek: Zero Clipboard verwenden. Diese JS -Bibliothek kann das Kopieren von Flash 10 in die Zwischenablage unterstützen. Das Prinzip dieser Methode besteht darin, ein DOM -Element wie Taste oder Div auf einem transparenten Blitz zu überschreiben (für den Benutzer nicht sichtbar). Wenn Sie auf dieses DOM klicken, wird das tatsächliche Klicken von Flash auf die Flash -Zwischenablage greifen.
Hier sind einige Beispiele für das Debuggen:
Die Codekopie lautet wie folgt:
<! DocType html public "-// w3c // dtd xhtml 1.0 transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transsitional.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml">
<kopf>
<title> Null -Zwischenablage -Test </title>
<meta http-äquiv = "content-type" content = "text /html; charset = utf-8" />
<script type = "text/javaScript" src = "Zeroclipboard.js"> </script>
<script type = "text/javaScript">
var clip = null;
Funktion $ (id) {return document.getElementById (id); }
Funktion init () {
clip = neueroclipboard.client ();
clip.SetHandCursor (wahr);
clip.adDeVentListener ('Mouseover', Funktion (Client) {
// Aktualisieren Sie den Text auf der Maus
clip.setText ($ ('fe_text'). Wert);
});
clip.addeventListener ('complete', function (client, text) {
// Debugstr ("kopierter Text in die Zwischenablage:" + Text);
ALERT ("Diese Adresse wurde kopiert, Sie können sie mit Strg+V einfügen.");
});
clip.Glue ('clip_button', 'clip_container');
}
</script>
</head>
<Body Onload = "init ()">
<input id = "fe_text" cols = "50" rows = "5" value = "Inhaltstext kopieren">
<span id = "clip_container"> <span id = "clip_button"> <strong> kopieren </strong> </span> </span>
</body>
</html>
Klicken Sie hier, um diese Bibliothek herunterzuladen: //www.vevb.com/jiaoben/24961.html
Bitte laden Sie beim Debuggen auf die Website hoch. Wenn Sie Flash direkt lokal öffnen, gibt es einen Fehler, und es gibt keine Erlaubnis. Die Moviepath -Eigenschaft in der Datei neroclipboard.js ist die Adresse von Falsh, die der Adressort ist, an dem Zeroclipboard.swf im Verzeichnis gespeichert ist.
Diese Lösung zum Kopieren von Inhalten in die Zwischenablage kann Browser unterstützen: Firefox/IE/Opera/Chorme/Safari Alle Browser!