Hi.
Wenn man ein Content Editable Div hat, kann man im Internet Explorer und im Firefox ganz einfach ein Bild aus der Zwischenablage einfügen.
Zum Beispiel einen Screenshot erstellen und mit strg-v einfügen.
Der kann dann auch einfach per js weiterverarbeitet werden.
Leider funktioniert es unter google Chrome und unter Microsoft Edge nicht.
Unter Chrome muss man das Paste Event abfangen, Clipboard Data auslesen, mit getfilecontents arbeiten und es dann manuell über DOM Manipulation hinzufügen.
Gibt es eine einfache, browserübergreifende Möglichkeit, das Einfügen von Bildern in ein Content Editable Div zu ermöglichen?
Danke
- - - Aktualisiert - - -
Hier mal mein Code, um auch unter Chrome und Edge ein Pasten von Images in ein Content Editable Div zu ermöglichen:
Aber geht das nicht auch einfacher?
Wenn man ein Content Editable Div hat, kann man im Internet Explorer und im Firefox ganz einfach ein Bild aus der Zwischenablage einfügen.
Zum Beispiel einen Screenshot erstellen und mit strg-v einfügen.
Der kann dann auch einfach per js weiterverarbeitet werden.
Leider funktioniert es unter google Chrome und unter Microsoft Edge nicht.
Unter Chrome muss man das Paste Event abfangen, Clipboard Data auslesen, mit getfilecontents arbeiten und es dann manuell über DOM Manipulation hinzufügen.
Gibt es eine einfache, browserübergreifende Möglichkeit, das Einfügen von Bildern in ein Content Editable Div zu ermöglichen?
Danke
- - - Aktualisiert - - -
Hier mal mein Code, um auch unter Chrome und Edge ein Pasten von Images in ein Content Editable Div zu ermöglichen:
Code:
document.addEventListener('paste', function(e)
{
var items;
var img;
var blob;
var inputdiv=document.getElementById('input');
var contents;
var reader;
if (typeof (e.clipboardData.items!="undefined")) {
items=e.clipboardData.items;
if(items[0].type.indexOf("image") === 0)
{
blob = items[0].getAsFile();
};
if(blob) {
reader = new FileReader();
reader.onload = function(event)
{
contents=event.target.result;
img= new Image();
img.src=contents;
document.getElementById('input').appendChild(img);
};
reader.readAsDataURL(blob);
};
};
});
Aber geht das nicht auch einfacher?