none
Kopieren und Einfügen von Text mit Bildern, wenn die Quelle lokal ist und das Ziel nicht, nicht mehr möglich? RRS feed

  • Frage

  • Hallo,

    Ich entwickle für einen Kunden ein einfaches Skript für sein SharePoint. Der Sinn des Skripts ist: Der Kunde kopiert Text aus seinen lokalen Dokumenten und fügt ihn online in ein Rich-Text-Feld ein. Da seine Dokumente unterschiedliche Formatierungen haben und bei ohne Formatierung einfügen, werden Bilder entfernt. Dies war einfach und das Hauptproblem bestand darin, dass Bilder, die in den Text eingefügt wurden, in dieses Daten-URL-Format konvertiert wurden

    <img src = "data: image / png; base64,
    iVBORw0KGgoAAAA ... RU5ErkJggg == "/>

    und SharePoint gefiel das nicht und löschte den Datenblock beim Speichern. Ich habe die Daten in einen Blob konvertiert, denseparat hochgeladen und dann das neu hochgeladene Bild verlinkt. Das hat bis vor einer Wochen gut funktioniert.

    Wenn ich nun Text mit Bildern aus einem lokalen Dokument kopiere und einfügen, werden nur einige lokale temporäre Bilder wie folgt verknüpft:

    <img width = "227" height = "174" src = "file: /// C: /Users/****/AppData/Local/Temp/msohtmlclip1/01/clip_image003.jpg" v: shapes = "Grafik_x0020_3 ">

    Dies ist der Fall für alle Online-Editoren, die ich mir eingefallen sind (Google Mail, Google Docs, Word Online, SharePoint) und für Chrome, Edge, IE11.

    Wenn ich mir das Paste-Event unter Chrome anschaue, kann ich sehen, dass das Clipboard-Objekt 'text / plain' (mein kopierter Text im Klartext) enthält, 'text / html'  (mein kopierter Text als html, wobei die Bilder wie dort oben lokal verlinkt sind ) enthält und 'text / rtf' (Text als RTF und die Bilder sind als riesige Binärblöcke in Hex dargestellt).

    Die Lösung war also einfach: Hol die Bilder von aus dem RTF, lade sie hoch und ersetze die lokal verknüpften Bilder durch Links zu den hochgeladenen Versionen.

    Aber jetzt bin ich für IE stecken geblieben. Das Clipboard-Objekt des IE unterstützt lediglich Klartext. Und wenn ich nur den Browser einfügen lasse, erstellt er diese lokal verknüpften Bilder.

    Meine Fragen sind:

    Hat sich das Verhalten beim Kopieren und Einfügen geändert, oder gibt es eine Einstellung, die jemand vermasselt hat?
    Warum werden lokale Bilder nicht mehr in die base64-Daten-URL konvertiert? (Das Einfügen eines einzelnen Bildes macht das immer noch)
    Gibt es überhaupt einen Zugriff auf die Bilder in der Zwischenablage von IE11 aus über Skript?
    Schritte zum Reproduzieren:

    Erstellen Sie ein neues Textdokument.
    Schreibe "Text <Bild> Text" hinein.
    Ersetzen Sie <Bild> durch ein Bild, das Sie auf Ihrer Festplatte gespeichert haben.
    Öffnen Sie einen beliebigen Online-Editor, der Bilder unterstützt (Word Online, Gmail usw.).
    Wählen Sie alles in Ihrem lokalen Dokument aus und kopieren Sie es (Strg + A -> Strg + C).
    Versuchen Sie, es in Ihren Online-Editor einzufügen.
    Das Ergebnis sollte "text <dead image> text" sein und das <dead image> sollte eine "file: \\" src enthalten.

    Vielen Dank für Ihre Zeit beim Lesen.

    Daniel Dengler

    Mittwoch, 27. März 2019 16:40

Alle Antworten

  • Hallo Daniel,

    Wenn Du Bilder hochladen und einfügen möchtest, musst Du ein erweiterte Rich-Text-Feld verwenden, wie in diesem Blogartikel beschrieben:
    Custom Field – Upload Files and Images
    Du kannst auch prüfen, ob das RestrictedMode-Attribut auf False gesetzt ist. Dadurch kann das Feld Rich-Text-Formatierungen enthalten, zum Beispiel Bilder. Ausführliche Informationen zu diesem Attribut findest Du hier:
    Field-Element (Liste)

    Gruß,

    Ivan Dragov


    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Donnerstag, 28. März 2019 13:10
    Moderator
  • Also haben wir ein bisschen mehr ausprobiert und etwas Merkwürdiges gefunden.

    Wenn ich meine SharePoint-Site (oder Google Mail) zu "vertrauenswürdigen Sites" unter Internetoptionen hinzufüge, funktioniert es, also Bilder werden als base64-Blöcke eingefügt. Wenn ich die Seite wieder zu "lokales Intranet" hinzufüge, funktioniert sie nicht mehr, also Bilder werden als lokale Links eingefügt. Dies gilt für alle Sicherheitsstufen. Wir haben vertrauenswürdige Sites und lokales Intranet auf die niedrigste, höchste und Standardstufe gesetzt, aber das Ergebnis war das gleiche.

    Hier ist eine Tabelle mit meinen Ergebnissen:

    . (ANY security level) SharePoint Gmail WordOnline
    IE11 trusted Sites works works fails
    IE11 local Intranet fails fails fails
    Chrome trusted Sites fails fails fails
    Chrome local Intranet fails fails fails
    Edge trusted Sites fails fails fails
    Edge local Intranet fails fails fails
    fails => Images as local links
    works => Images as base64 blocks

    In allen Tests habe ich aus einem lokalen Word-Dokument kopiert.
    Donnerstag, 28. März 2019 13:42