Thomas: Bild in Zwischenablage

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

  1. 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

    1. 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

      1. 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

        1. 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

          1. 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

            1. 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.

              1. 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

                1. 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.

                  1. 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

                  2. 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