Sto usando document.getSelection()
per selezionare del testo. Vorrei sapere che tipo di elemento contiene l'intervallo selezionato (in particolare voglio vedere se si tratta di un tag di ancoraggio).Ottieni elementi HTML nel range
var selection = document.getSelection();
var range = selection.getRangeAt(0);
Quindi posso ottenere l'intervallo, ma come posso sapere quale elemento è in tale intervallo? Felice di usare plain js o jQuery.
EDIT:
Ecco quello che mi si avvicinò con:
var updateLink = function(url) {
var selection = document.getSelection();
var range = selection.getRangeAt(0);
if (range != 0) {
var containerElement = range.commonAncestorContainer;
if (containerElement.nodeType != 1) {
containerElement = containerElement.parentNode;
var e = $(containerElement);
e.attr('href', url);
}
}
}//end
lettura: https://developer.mozilla.org/en-US/docs/Web/API/Selection?redirectlocale=en-US&redirectslug=DOM%2FSelection – diEcho
Provare a utilizzare [longilineo] (https://code.google.com/p/rangy/), rende il lavoro con le selezioni * molto * più semplice. –