2015-04-18 6 views
5

Ich versuche, ein Bild Paste-Funktion auf meiner Web-Anwendung hinzuzufügen, die Standard-Routine:Einfügen aus einer Datei-Browser und HTML5 Zwischenablage API

$('textarea').on('paste', function (ev) { 
    var clipboardData = ev.originalEvent.clipboardData; 

    $.each(clipboardData.items, function (i, item) { 
     if (item.type.indexOf("image") !== -1) { 
      var reader = new FileReader(); 

      reader.readAsDataURL(item.getAsFile()); 
      reader.addEventListener('loadend', ...); 
      ... 
     } 
    }); 
}); 

Die vollständige Probe hier gefunden werden kann: http://jsfiddle.net/t8t2zj6k/

Es funktioniert korrekt, wenn ich & ein Bild von einer Bildbetrachter-Software kopieren, aber wenn ich versuche, dasselbe mit einem Dateibrowser (zB Finder auf Mac oder Nautilus unter Linux) zu tun, als Ergebnis bekomme ich nur ein Textzeichenfolge mit dem Dateipfad oder sogar ein Bild mit Dateitypsymbol anstelle einer Originaldatei.

Gibt es eine Möglichkeit, Pasten aus einem Dateibrowser richtig zu behandeln?

+0

Möglicherweise könnte diese Ihnen helfen? http://stackoverflow.com/questions/6333814/how-does-the-paste-image-von-clipboard-funktionality-work-in-gmail-and-google-c – lemieuxster

+0

@lemieuxster, danke, aber leider bin ich bereits die exakt gleiche Lösung verwenden, die in der akzeptierten Antwort angegeben ist. Mein Fall ist ein bisschen anders - während die grundlegende Einfügefunktion gut funktioniert, gibt es ein Problem mit dem Einfügen aus dem Finder. – NikitaBaksalyar

+0

Scheint es vielleicht ein Problem mit Chrome zu sein? Ich sehe nichts in Safari oder Firefox. https://code.google.com/p/chromium/issues/detail?id=361980 – lemieuxster

Antwort

Verwandte Themen