perché gli iframe-s sono così utili nelle applicazioni HTML5 WYSIWYG?

2

<iframe> elementi sono documentati come

The HTML Inline Frame Element (<iframe>) represents a nested browsing context, effectively embedding another HTML page into the current page.

Tuttavia, la maggior parte dei framework HTML5 degli editor WYSIWYG (come tinymce , Aloha , Maqetta , ecc ...) utilizzano molto <iframe> ma intuitivamente non hanno bisogno di un nuovo contesto di esplorazione nidificato ... (l'esempio canonico di <iframe> è di mostrare un altro sito Web, ma tutti gli editor WYSIWYG in HTML di cui ho sentito parlare sono utilizzabili su stesso sito web .

Quindi perché <iframe> è così importante in questo caso? Sappiamo che contenteditable è terribile (quindi probabilmente non è sufficiente per gli editor WYSIWYG in HTML5).

(Suppongo che sia relativo alla gestione degli eventi e alla cattura e al bubbling, ma non capisco la relazione con <iframe> s)

PS. Questa domanda SO fornisce la motivazione e il contesto di la mia domanda e questa spiega perché contenteditable mi ha deluso.

    
posta Basile Starynkevitch 12.11.2015 - 14:54
fonte

1 risposta

5

isolamento

Avendo l'editor all'interno di un iFrame è garantito che sia isolato dalla pagina in cui è usato. La pagina contenente può avere Javascript, CSS, tag HTML, ... che potrebbero interferire con l'editor se non è in un iFrame perché potrebbe 'sanguinare' in esso. L'editor avrebbe bisogno di impostare gli stili CSS per ogni elemento possibile per assicurarsi che lo stile della pagina contenente non vi si annulli e venga applicato dove non ha senso. Questo semplicemente non è possibile.

Funziona anche nella direzione opposta: anche se il markup dell'editor stesso viene danneggiato, l'uso di un iFrame significa che il contenuto dell'editor può essere rotto, ma non l'editor stesso. Se si utilizza l'editor per un blog, non si desidera che un post interrotto uccida completamente la possibilità di modificare il post interrotto. Se il pulsante di salvataggio dell'editor si interrompe, perdi qualsiasi possibilità di rimuovere il contenuto.

Questo non vuol dire che un attacco mirato non possa violare l'editor WYSIWYG poiché ci sono ancora modi in cui puoi interferire con i contenuti di un iFrame ...

    
risposta data 12.11.2015 - 16:09
fonte

Leggi altre domande sui tag