Sto creando un editor WYSIWYG.

Vorrei, dato un testo formattato selezionato, 'catturare' tutti i tag attivi per quell'area selezionata.

Gli esempi rappresentano il testo selezionato

Esempio 1
Lorem ips[i]um[i]
I TAG attivi presenti sul testo: B,I
I TAG attivi presenti su tutti i caratteri: B

Esempio 2
<u>dolor</u> sit
I TAG attivi presenti sul testo: U,B
I TAG attivi presenti su tutti i caratteri: Nessuno

Esempio 3
[...]amet[...]
I TAG attivi presenti sul testo: B
I TAG attivi presenti su tutti i caratteri: B

Ho letto che occorre utilizzare window.getSelection() e getRangeAt(0) ma ho capito ben poco.

Qualcuno potrebbe aiutarmi?