Mam contenteditable div, w którym mam wiele znaczników (br, b, u, i) i tekst i potrzebuję uzyskać pozycję caret względem div, w tym wszystkie znaczniki .Uzyskać pozycję caret w contenteditable div, w tym znaczniki
Na przykład:
<div id="h" contenteditable="true">abc<b>def<br>ghi</b>jkl</div>
Gdy kursor jest od g do h, muszę być pozycji daszka 14. Problemem jest to, że nie znaleziono metody, które wykorzystują treeWalker nie działają w tym przypadku . Pogrubiona etykieta nie została znaleziona ... prawdopodobnie dlatego, że nie jest zamknięta. Również próbowałem kilku metod, ale wciąż nie ma szczęścia.
Potrzebuję go do pracy w Firefoksie. Dziękuję.
Dlaczego trzeba ten numer? Zasadniczo jest to bezsensowne, ponieważ istnieje wiele sposobów reprezentowania tego samego DOM z innym kodem HTML, który wpłynie na liczbę (np. Poprzez użycie '
' zamiast "
"). Zakładam, że chcesz tego, aby uzyskać przesunięcie względem ciągu HTML wysyłanego z serwera do przeglądarki. –
tak ... właśnie dlatego potrzebuję tego numeru. Próbowałem kilka sposobów, ale nadal nie ma sukcesu. – helldrain
Nie ma sposobu na odzyskanie oryginalnego ciągu HTML za pośrednictwem DOM, więc musisz ponownie poprosić o stronę za pośrednictwem Ajax, przeanalizować kod HTML i dopasować go do bieżącego DOM. To będzie dość trudne. –