Bild in Zwischenablage
Thomas
- javascript
Hallo,
ich habe folgendes Problem. Ich möchte ein Bild in die Zwiaschenablage kopieren, so dass man dieses dann z.B. in Word mit Str+c hineinkopieren kann.
Das Bild ist ein Kartenausschnitt auf dem Bildschirm. Dieser liegt aber ebenfalls als Datei in einem bekannten Verzeichnis. Es ist im grunde egal ob der Bildschirmausschnitt oder die Datei genommen wird, hauptsache es wird in die Zwischenablage kopiert.
Neben Javascript steht mir auch JSP zur verfügung.
Vielen Dank im voraus.
Gruß
Thomas
Hallo Thomas,
ob und wie dein Problem zu lösen ist, weiß ich auch nicht. Aber,
Neben Javascript steht mir auch JSP zur verfügung.
bist du sicher, dass diese Techniken deinen Besuchern auch zur Verfügung stehen?
Und warum willst du etwas programmieren, was es schon gibt? Bei meinem Browser (FF) geht das mit "rechte Maustaste -> Grafik kopieren".
Gruß, Jürgen
Ja JSP ist sicher.
Tatsächlich geht es mit rechtemaustaste kopieren. Auf diese Idee bin ich nicht gekommen, da es ein Map-Service ist, aber dieser liefert ja auch ein statisches Bild.
Trotzdem soll der Nutzer der Keine Anhnung hat diese Möglichkeit als Button haben. Kann man denn diesen Rechtsklick und Copy nicht simulieren, so das der Nutzer auf einen dafür vorgesehenen Button drücken muss.
Gruß
Thomas
Hallo Thomas,
Ja JSP ist sicher.
da hast Du aber einen erlesenen Besucherkreis, die alle auf ihrem Rechner JSP
zur Verfügung haben. Also eine geschlossenen Besuchergruppe mit qualifizierten
Kenntnissen.
Trotzdem soll der Nutzer der Keine Anhnung hat diese Möglichkeit als Button haben.
Also entfällt dieser Fall komplett :-)
Kann man denn diesen Rechtsklick und Copy nicht simulieren, so das der Nutzer auf einen dafür vorgesehenen Button drücken muss.
Simulieren dieser Klicks: Nein, was gut ist. Sonst hättest Du ja Zugriff
auf den Rechner Deiner Besucher mit den gleichen Rechten, die Dein Besucher
hat - was fatal wäre.
Der einzige Browser, der nach meinem Kenntnisstand den Zugriff auf die
Zwischenablage erlaubt, ist der IE. JScript und VB-Script haben dort Zugriff
auf das clipboardData-Objekt.
In meinen Augen ist das eine Sicherheitslücke - aber im Normalfall benutze
ich auch keinen IE :-)
Freundliche Grüße
Vinzenz
da hast Du aber einen erlesenen Besucherkreis
JSP wird doch Serverseitig intepretier also wo ist das problem?
Kann mir jemand ein BildCopyBeispiel für clipboardData-Objekt. Mit Text hab ich das schon hinbekommen aber mit einem Bild hab ich da noch Probleme. Fürs erste reicht der IE.
P.S. Wie gesagt, das Bild liegt auch als Datei vor. kann man nicht die Datei downloaden und dann automatisch in die Zwischenablage kopieren.
Gruß
Thomas
Hallo Thomas,
da hast Du aber einen erlesenen Besucherkreis
JSP wird doch Serverseitig intepretier also wo ist das problem?
ach ja - und wie kann eine serverseitige Technik auf die Zwischenablage
des Clients zugreifen? Die Antwort: Gar nicht.
Merksatz: Serverseitige Techniken sind irrelevant, wenn Du clientseitig
etwas erreichen willst.
P.S. Wie gesagt, das Bild liegt auch als Datei vor. kann man nicht die Datei downloaden und dann automatisch in die Zwischenablage kopieren.
1. Ist das Bild bereits auf dem Rechner des Besuchers - sonst könnte es nicht
angezeigt werden.
2. Wenn das ginge, dann könntest Du Dir den Inhalt jeder Datei, die der
Besucher Deiner Seite auf seinem Rechner lesen kann, zusenden.
3. Aus 2. folgt: Es darf nicht gehen.
Freundliche Grüße
Vinzenz
Die setData Methode vom clipboardData-Objekt kann nur Text oder ne URL speichern. Wie soll ich denn da ein Bild reinpacken dass es in Word usw. eingefügt werden kann.
Hallo Thomas,
Die setData Methode vom clipboardData-Objekt kann nur Text oder ne URL speichern. Wie soll ich denn da ein Bild reinpacken dass es in Word usw. eingefügt werden kann.
hat jemand etwas anderes behauptet?
Ich habe das clipboardData-Objekt nur erwähnt, weil nach meinem Kenntnisstand die überhaupt einzige Möglichkeit ist, skriptgesteuert auf die Zwischenablage
zuzugreifen. Mal kurz angetestet, festgestellt, dass diese Sicherheitslücke
tatsächlich standardmäßig offen ist - fertig.
Warum gibst Du Dich nicht damit zufrieden, den "unbedarften Benutzern" eine
kurze Anleitung "Rechtsklick auf Bild, Kopieren" an die Hand zu geben?
Freundliche Grüße
Vinzenz
Warum gibst Du Dich nicht damit zufrieden
Weil ich beauftragt wurde dies so zu machen. und ich habe schon gesehen das dies funktioniert (nur im ie). komme aber nicht an den code.
Hallo
Warum gibst Du Dich nicht damit zufrieden
Weil ich beauftragt wurde dies so zu machen.
Na dann viel Spaß bei Deinem Auftrag!
Du hättest den Auftraggeber besser beraten müssen.
und ich habe schon gesehen das dies funktioniert (nur im ie).
Bei entsprechend heruntergedrehten Sicherheitseinstellungen kannst Du mit
dem IE alles machen. Du kannst das Bild sogar in ein Word-Dokument einfügen.
Den Ansatz dafür kannst Du https://forum.selfhtml.org/?t=161363&m=1050030 entnehmen.
Freundliche Grüße
Vinzenz
Hallo Thomas,
Weil ich beauftragt wurde dies so zu machen. und ich habe schon gesehen das dies funktioniert (nur im ie). komme aber nicht an den code.
so geht's: Beispiel
<html>
<head>
<title>Kopieren in die Zwischenablage</title>
<script type="text/jscript">
[code lang=javascript]
function copy_to_clipboard(id) {
var element = document.getElementById(id);
var controlRange;
if (document.body.createControlRange) {
controlRange = document.body.[link:http://msdn2.microsoft.com/en-us/library/ms536385.aspx@title=createControlRange()];
controlRange.[link:http://msdn2.microsoft.com/en-us/library/ms535925.aspx@title=addElement](element);
controlRange.[link:http://msdn2.microsoft.com/en-us/library/ms536419.aspx@title=execCommand]('[link:http://msdn2.microsoft.com/en-us/library/ms536980.aspx@title=Copy]');
}
}
</script>
</head>
<body>
<h3><a href="javascript:return false;" onclick="copy_to_clipboard('bild')">Kopiere das Bild in die Zwischenablage</a></h3>
<div><img id="bild" src="http://vinzenzmai.vi.funpic.de/tmp/bilder/darstellungsfehler.png"></div>
</body>
</html>
[/code]
Immerhin gibt der IE7 eine Warnung aus, eine Webseite möchte auf meine
Zwischenablage zugreifen :-)
Einfügen ist auch in ganz normalen Grafikprogrammen möglich.
Freundliche Grüße
Vinzenz