Ein Embed, und die Frame-Regel, die die App nie hatte
/embed ist der Konverter ohne alles Beiwerk, für eine Seite, die ihn beherbergen will, und er spricht per postMessage mit seinem Gastgeber. Ihn hinzuzufügen hieß, die fehlende Regel endlich aufzuschreiben: Jede andere Route weigert sich nun überhaupt, in einen Frame gestellt zu werden — was vorher nirgends stand.
Ein Ablagefeld, das entstandene Dokument, ein Knopf zum Kopieren und einer zum Herunterladen. Das ist alles, was unter /embed steht: keine Kopfzeile, keine Fußzeile, kein Blog, kein Konto, kein Verlauf — nichts, das aussähe wie unsere Navigation in der Seite eines anderen.
Was der Gastgeber bestimmt
?conversion= legt fest, mit welcher Konvertierung der Frame öffnet, und ?theme=dark oder ?theme=light, wie er aussieht. Das Erscheinungsbild wählt der Gastgeber und nicht das Betriebssystem des Besuchers, denn ein Baustein, der dem System folgt, landet für die Hälfte des Publikums als dunkles Rechteck in einer hellen Seite.
Ergebnisse kommen per postMessage beim übergeordneten Fenster heraus, und jede Nachricht trägt source: 'TransformPipe'. Wer auf window lauscht, hört von jedem Frame und von den eigenen Skripten — ohne einen Namen zum Prüfen feuert die erste Behandlung, die jemand schreibt, also auf fremde Nachrichten. Beim Laden geht eine Nachricht hinaus, damit ein Gastgeber auf den Frame warten kann, statt eine Zeitspanne zu raten. Prüfen Sie event.origin auf Ihrer Seite.
Warum einbetten und nicht weiterleiten
Die Konvertierung läuft im Browser des Besuchers, genau wie hier. Ihr Leser legt eine Datei ab, und sie erreicht weder Ihren Server noch unseren. Wer serverseitig umwandeln will, ruft die API; das Embed bietet das Einzige, was eine API nicht kann — dass die Datei den Rechner nie verlässt, auf dem sie liegt.
Es ist außerdem bewusst anonym. Das Embed wird anstelle der Anwendung gezeichnet und nicht als Anwendung mit versteckter Umgebung, und es liegt über dem Teil, der den Server fragt, wer angemeldet ist. Eine Seite auf irgendeiner Domain löst durch das Einbetten also nie eine Anfrage mit Anmeldedaten bei uns aus. Einen Cookie-Hinweis gibt es darin ebenfalls nicht: In der Seite eines anderen um Zustimmung zu bitten heißt, an dessen Stelle zu fragen.
Alles andere verweigert sich dem Frame
Das Embed brauchte eine frame-ancestors-Regel, und sie zu schreiben machte sichtbar, dass keine Route je eine hatte. Jede andere Adresse sagt nun Nein — frame-ancestors 'none' und X-Frame-Options: DENY —, der Konverter mit dem Konto dahinter lässt sich also überhaupt nicht in einen Frame stellen. /embed und seine Sprachfassungen (/de/embed und die übrigen) erlauben jeden Vorfahren und tragen noindex, denn ein Konverter ohne Beiwerk ist keine Seite, auf der jemand aus einer Suche landen sollte.
Ein Dokument zu behalten, es zu teilen und der Verlauf bleiben auf transformpipe.com. Das Embed hat keine Sitzung, mit der es dorthin käme, und das ist so gebaut und keine Einschränkung.
Weiter: Markdown mit JavaScript in HTML umwandeln und ob ein Online-Konverter sicher ist.