Pracuję nad edytorem tekstu sformatowanego, takim jak aplikacja internetowa, w zasadzie edytor XML napisany w javascript.Użyj javascript, aby rozszerzyć zakres DOM, aby pokryć częściowo wybrane węzły.
Mój kod javascript musi zawijać wybrane węzły z kontenera div divider contentEditable. Używam metod opisanych pod adresem MDC. Ale ponieważ muszę synchronizować pojemniki div zawartości do mojego XML DOM Chciałbym uniknąć częściowych wyborów, jak to opisano w w3c ranges:
<BODY><H1>Title</H1><P>Blah xyz.</P></BODY
............^----------------^............
Ten wybór rozpoczyna wewnątrz H1 i kończy się wewnątrz P, Chciałbym, żeby całkowicie zawierał H1, P.
Czy istnieje prosty sposób na rozszerzenie wyboru w celu pokrycia częściowo wybranych dzieci? Zasadniczo chcę użyć range.surroundContents() bez uruchamiania wyjątku.
(Kod nie musi pracować z Opera/IE)
Rzeczywiście, ale myślę, że jest to właściwy tor. Spróbuję utworzyć niestandardową selekcję z oryginalnej, która ma te właściwości. –
Przedłużę moje pytanie, aby było jaśniejsze. Również zaktualizowałem przykład na http://jsfiddle.net/GFuX6/5/ –
Wybierz tekst, naciśnij klawisz escape, a tekst staje się pogrubiony. W skrzypcach jest długa linia: 'window.getSelection(). GetRangeAt (0) .surroundContents (tag);' Obecne skrzypce rozszerzają granice węzłów tekstowych, ale nie jestem w stanie znaleźć sposobu na pokrycie części. włączone węzły. –