2012-05-28 13 views
5

Co próbuję zrobić, to coś podobnego do tego, jak działa edytor współpracy. Chcę zezwolić dwóm osobom na edycję tego samego dokumentu. I do tego muszę zasymulować sztuczną kurtynę. Mogę wyodrębnić aktywność innego użytkownika w czasie dodawania i usuwania w określonej lokalizacji w obszarze tekstowym.Jak symulować sztuczną kurtynę w obszarze tekstowym?

Następnie przekażę lokalizację wraz z działaniem do drugiego dokumentu. Tam potrzebuję przeprowadzić wymaganą zmianę na wysłanej współrzędnej. Przeszukałem i znalazłem wystarczająco dużo sposobów, aby ustawić lokalizację opiekuna i wstawić lub usunąć tekst w aktualnej lokalizacji opiekuna, ale problem polega na tym, że karetka dokumentu przesuwa się do miejsca, w którym dokonuję zmiany.

Nie chcę tego, chcę mieć dwie wózki, po jednej dla dwóch użytkowników. Prześlij swoje zmiany do siebie i dokonaj zmian w odpowiednich lokalizacjach, pokazując dwie różne opiekunki.

Po prostu muszę wiedzieć, czy istnieją pewne biblioteki, z których mogę korzystać, lub nawet jeśli muszę to zrobić samodzielnie, to jak i gdzie mam zacząć. Nie wiem nawet, w jaki sposób obszar tekstowy jest reprezentowany w przeglądarce. Jak mogę scharakteryzować lokalizacje w obrębie obszaru tekstowego, jeśli wiem, że następnie zapisuję lokalizacje w pamięci i wprowadzam zmiany na podstawie otrzymanych danych wejściowych.

Mam nadzieję, że mam sens, dziękuję za pomoc.

+1

Nie jestem pewien, czy tekst jest dobrym punktem wyjścia; może możesz nadużyć Canvas HTML5 dla tego projektu, a potem na końcu przekonwertować go do formatu textarea lub dokumentu, np. Plik PDF lub Word, który wśród znanych mi osób pozwala na stosunkowo łatwe dodawanie tekstu w określonych obszarach. – Jake

+0

Ale jeśli muszę stworzyć edytora współpracującego, muszę pracować nad tekstem. Uważam, że mogę zrobić postęp, jeśli uda mi się ustalić, w jaki sposób lokalizacje znajdują się w określonym obszarze tekstowym. Mam na myśli to, że jeśli podczas pisania będę trzymał się mojej pozycji x, to w jakich warunkach ta pozycja jest opisana. – Sachin

+0

Pod względem liczby znaków, prawda? na przykład. jeśli x wynosi 24, to kurtyna miga przy 24. znaku. Nie? – Jake

Odpowiedz

1

Można naśladować daszek ze szczególnym charakterem i zrobić regex aby wstawić tekst partnera i przenieść swój daszek, i możesz użyć prawdziwego. To jest najprostszy projekt, jaki mogę sobie wyobrazić. Aby uzyskać idead, można użyć rury | jako sztucznego kija. ale może to łatwo doprowadzić do konfliktu z wstawieniem przez użytkownika potoku, aby tego uniknąć, możesz użyć nietypowej kombinacji lub znaleźć jakiś znak Unicode, który działa jak karetka.

Prawdziwym rozwiązaniem, ale o wiele bardziej skomplikowanym, nie jest używanie obszaru tekstowego i używanie DIV. oznacza to, że musisz obsłużyć wszystkie kluczowe zdarzenia i wstawić znak wciśnięty ręcznie do dokumentu i zarejestrować pozycję kursora. Ale w ten sposób możesz wstawić, ile oczek nie chcesz, tylko 2, coś w tym stylu: <span class="caret1"></span> możesz sprawić, żeby migało, styl css, mieć inny kolor dla każdej karetki, itp.

0

Czy wypróbowałeś Draft.js, od Facebook ? https://facebook.github.io/draft-js/

„Draft.js to framework do budowania bogatych edytorów tekstowych w zareagować, zasilanych przez niezmiennej modelu i abstrahując nad różnicami w różnych przeglądarkach.

Draft.js ułatwia zbudować każdy rodzaj bogatej wprowadzania tekstu Niezależnie od tego, czy chcesz obsługiwać kilka wbudowanych stylów tekstu, czy budować skomplikowany edytor tekstowy do komponowania długich artykułów.

W Draft.js wszystko można dostosować do własnych potrzeb - zapewniamy klocki, dzięki którym będziesz mieć pełne kontrola nad interfejsem użytkownika. "

Powiązane problemy